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

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

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

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

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

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

最佳答案

您可以使用DBNull.Value 在数据库中传递空值。这是 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

关于c# - 通过 C# 将 NULL 值传递给存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42724690/

相关文章:

c# - asp.net MVC Controller 不保留我的内存数据库

.net - SQLCLR 触发器与 Windows 服务。什么时候适合使用SQLCLR?

sql-server - 如何在 SQL Server 中使用前导通配符全文搜索?

c# - 查看模型结果的下拉列表

asp.net-mvc - asp.net mvc 添加不带属性的模型元数据

c# - 无法在新的 Chrome 浏览器标签页中打开 pdf

c# - 隐藏 app.config

c# - Unity Debug.Log() 垃圾邮件

c# - Http Post 不工作(C# 代码工作而 java 代码不工作)

sql-server - 从组中选择前 1 个并在查询中排序