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

Dev*_*Dev 1 c# sql-server asp.net-mvc stored-procedures

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

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

update.Value = dataModel.Value == null ? string.Empty : dataModel.Value;
Run Code Online (Sandbox Code Playgroud)

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

Nik*_*wal 6

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

所以你的代码变成了

update.Value = dataModel.Value == null ? DBNull.Value : dataModel.Value;
Run Code Online (Sandbox Code Playgroud)

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