hwc*_*rwe 20 .net c# dbnull operators
我有以下C#代码:
sqlCommand.Parameters.AddWithValue("@Parameter", table.Value ?? DBNull.Value);
Run Code Online (Sandbox Code Playgroud)
但它抛出以下编译错误:
运算符
??不能应用于类型string和的操作数System.DBNull
为什么编译器不允许这种语法?
Pav*_*čík 36
两个操作数都需要是对象.使用显式转换:
(object)table.Value ?? DBNull.Value;
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 16
有之间没有自动转换string和System.DBNull,所以你需要通过添加强制转换为指定要明确的类型object:
sqlCommandObject.Parameters.AddWithValue("@Parameter",
table.Value ?? (object)DBNull.Value);
Run Code Online (Sandbox Code Playgroud)
除了使用DBNull.Value,还可以使用Convert.DBNull:
sqlCommand.Parameters.AddWithValue("@Parameter", table.Value ?? Convert.DBNull);
Run Code Online (Sandbox Code Playgroud)
我相信,在幕后,它基本上在做与其他示例中提到的相同/相似的事情(即,将DBNull转换为对象),但是这使其更简单/更容易。
| 归档时间: |
|
| 查看次数: |
12443 次 |
| 最近记录: |