我试图使用ADO.NET将参数传递给存储过程。此参数的类型为int,但数据库中的字段可以为空。这是我的代码:
AddInParameter(cmd, "@i_Required_License_List_PKID", DbType.Int32, RequiredLicenseListPkid==""? null : Convert.ToInt32(RequiredLicenseListPkid);
当我这样做时,我得到一个错误,说明null和int之间没有转换。
我也尝试用DbNull.Value代替null但结果相同。
我似乎无法在DbType类中找到任何可以为null的参数类型,但我想知道是解决方案。
答案 0 :(得分:2)
使用: DBNull.Value;
作为参数的值
答案 1 :(得分:0)
AddInParameter(cmd,“@ i_Required_License_List_PKID”,DbType.Int32,RequiredLicenseListPkid ==“”?DBNull.Value:Convert.ToInt32(RequiredLicenseListPkid);