存储过程和nullable的问题
代码如下:
DateTime? datetime1=null;
param[ "@datetime1 "].value=datetime1;
当datetime1为null的时候报错“需要参数@datetime1”
------解决方案--------------------C#语句中的null和数据库的NULL是不一样的,
当参数为null的时候对应数据库的DBNull.Value;
所以要这样处理:
DateTime? datetime1=null;
param[ "@datetime1 "].value=datetime1==null?DBNull.Value:datetime1;
或
object obj = DBNull.Value
if(datetime1!=null)
{
obj = datetime1;
}
param[ "@datetime1 "].value=obj;