The*_*lla 2 c# sql asp.net sqlclient
我从数据库(1条记录)中提取数据并将每个值放在文本框或下拉列表中.其中一些值是DB.null.如果是,我将每个转换为""(空白).但是,一旦用户修改了文本框/下拉列表,他们就可以"保存"新结果.我的问题是:
如果用户留下空白,我希望能够保持该值为DB.null.有没有办法做到这一点?
另外,如果文本框中有值并且用户决定删除它,我是否可以将其转换为DB.Null?这是我试图给你们一些想法的事情:
productName != ""
? myCommand.Parameters.AddWithValue("@ProductName", productName)
: myCommand.Parameters.AddWithValue("@ProductName", DBNull.Value);
Run Code Online (Sandbox Code Playgroud)
使用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
);
Run Code Online (Sandbox Code Playgroud)
或者使用null和不使用显式强制转换:
myCommand.Parameters.AddWithValue(
"@ProductName",
! String.IsNullOrWhiteSpace(productName) ? productName : null
);
Run Code Online (Sandbox Code Playgroud)