我从数据库中提取数据(1 条记录)并将每个值放入文本框或下拉列表中。其中一些值是 DB.null。如果是,我将它们中的每一个都转换为“”(空白)。但是,一旦用户修改了文本框/下拉列表,他们就可以“保存”新结果。我的问题是:
如果用户留下空白,我希望能够保持该值为 DB.null。有办法做到这一点吗?
此外,如果文本框中有一个值并且用户决定删除它,我是否也可以将其转换为 DB.Null?以下是我试图给你们一些想法:
productName != ""
? myCommand.Parameters.AddWithValue("@ProductName", productName)
: myCommand.Parameters.AddWithValue("@ProductName", DBNull.Value);
最佳答案
对于 SQL Server,我相信您可以互换使用 null
或 DBNull.Value
将值设置为 NULL
。
我还将您的代码更改为:
myCommand.Parameters.AddWithValue(
"@ProductName",
// this requires a cast as ?: must return the same type
String.IsNullOrWhiteSpace(productName)
? (object)DBNull.Value
: (object)productName
);
或者使用 null
并且没有显式转换:
myCommand.Parameters.AddWithValue(
"@ProductName",
! String.IsNullOrWhiteSpace(productName) ? productName : null
);
关于c# - 是否可以传递一个参数 DB.null 并在数据库中设置一个等于该值的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491337/