如何解决SQLServerCompact3.5删除记录时会出现试图除以零错误
创新互联于2013年成立,先为二道等服务建站,二道等地企业,进行企业商务咨询服务。为二道企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
调用 System.IO.File.Delete 方法,
并传入 SQL Server Compact Edition 数据库的路径和文件名。
这样一个情况
select * from a where c0 and (b/c)0.5 and (b/c)0.6
这样一条语句,由于b,c是二个数值列,里面记录的是金额,而c 的话有可能为0,那么这时我们虽然加上了c0这个条件,却仍有可能 出现 遇到以零作除数错误 这个错误.
解决这个问题,有二种方法,一种是自己加个函数 发觉c=0时,将c改成1 ;如 b/checkdata(c)0.6
另一种方式 则是使用sqlserver 的选项来禁止出现以零除的错误中断,让而让其为null
set ansi_warnings off
SET ARITHABORT off
SET ARITHIGNORE on
select * from a where c0 and (b/c)0.5 and (b/c)0.6
如果一来,当执行时,遇到某条记录里为0时,则二数相除为null,而null0.6这个是不成立的,从而达到了作为条件的目的.
sqlserver自动,
把数字前面0省略,
应该设置的时候就是设置省略无意义数字。
如何解决sqlservercompact3.5删除记录时会出现试图除以零错误
调用 System.IO.File.Delete 方法,
并传入 SQL Server Compact Edition 数据库的路径和文件名。
修改脚本啊!
--method 1
declare @a int ---分子
declare @b int ---分母
select case when @b=0 then NULL else @a/@b end as [a除以b]
--method 2
declare @a int ---分子
declare @b int ---分母
select @a/nullif(@b,0) as [a除以b]
在零之前判断以下,避免分母为零
sqlserver避免遇零除错
在oracle中,你也可以采用上述类似的方法,处理相关的错误信息,请试一试,
如有疑问,及时沟通!
这要看你使用的是什么数据类型了,如果是float或者double,需要使用t-sql或者高级语言的函数来去掉多余的0。