读取数据库中的DateTime报错?
数据库中的DateTime列值为null,用SqlCommand.ExecuteScalar()检索时间的时候,下面的代码报错呢?
if(cmd.ExecuteScalar() == DBNull.Value || cmd.ExecuteScalar() == null)
报错:SqlDateTime 溢出,必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
这是什么原因?
------解决方案--------------------你的查询语句有问题吧,你查询参数里是不是有DATETIME类型
把DATETIME 类型更改为 DATETIME?(加个问号) 就可以接受NULL值了
------解决方案--------------------if(cmd.ExecuteScalar() == DBNull.Value
------解决方案-------------------- cmd.ExecuteScalar() == null)
我估计不是这句代码本身的问题,而是ExecuteScalar方法执行时抛出的异常,你可能用这个方法去执行了增删改了。
------解决方案--------------------疑where条件中传入的时间超数据库所能识别范围,先把时间换成1753-1-1到9999-12-31之间看是否报错,最好将sql贴出来
------解决方案--------------------cmd.ExecuteScalar()你执行了两次,
应该改为:
Object res=cmd.ExecuteScalar();
if (res==null
------解决方案--------------------res is DBNull)
{
....
}
不过你还要把你的sql语句贴出来,才能看到原因,
------解决方案--------------------调试
------解决方案--------------------if(cmd.ExecuteScalar() == DBNull.Value
------解决方案-------------------- cmd.ExecuteScalar() == null)
这句改成成样
object ob=cmd..ExecuteScalar()
if (ob == null)
{
}
这样来处理
------解决方案--------------------
顶这个。
------解决方案--------------------
再顶,,,