如何在ADO.Net中作为参数传递null

时间:2014-06-30 13:26:46

标签: c# .net ado.net

我试图使用ADO.NET将参数传递给存储过程。此参数的类型为int,但数据库中的字段可以为空。这是我的代码:

AddInParameter(cmd, "@i_Required_License_List_PKID", DbType.Int32, RequiredLicenseListPkid==""? null : Convert.ToInt32(RequiredLicenseListPkid);

当我这样做时,我得到一个错误,说明null和int之间没有转换。

我也尝试用DbNull.Value代替null但结果相同。

我似乎无法在DbType类中找到任何可以为null的参数类型,但我想知道是解决方案。

2 个答案:

答案 0 :(得分:2)

使用:    DBNull.Value;

作为参数的值

答案 1 :(得分:0)

AddInParameter(cmd,“@ i_Required_License_List_PKID”,DbType.Int32,RequiredLicenseListPkid ==“”?DBNull.Value:Convert.ToInt32(RequiredLicenseListPkid);