通过C#将NULL值传递给存储过程

时间:2017-03-10 17:47:28

标签: c# sql-server asp.net-mvc stored-procedures

我的MVC Web App中有一个更新类,用于从前端更新字段。这会调用数据库上的过程来更新表中的单元格。 (注意:此列可以接受NULL值)

如果我在我的C#代码中设置它,那么它会工作,因为它检查前端是否传递NULL并用空字符串替换它(空格也可以工作):

update.Value = dataModel.Value == null ? string.Empty : dataModel.Value;

但是,当我查询数据库表时,它不是在单元格中设置NULL值而只是空白。如何通过C#代码将NULL值传递给过程?

2 个答案:

答案 0 :(得分:6)

您可以使用DBNull.Value在数据库中传递Null值。这是DB的null值的.Net替代。

所以你的代码变成了

update.Value = dataModel.Value == null ? DBNull.Value : dataModel.Value;

https://msdn.microsoft.com/en-us/library/system.dbnull.value(v=vs.110).aspx

答案 1 :(得分:1)

试试这个command.Parameters.AddWithValue("@param", DBNull.Value);