日期:2014-05-20  浏览次数:21570 次

存储过程和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;