B. *_*non -1 c# sql-server varchar
我有用于将记录插入SQL Server表的代码,在某些情况下,它有一些空值(如果没有首先用伪null(空)val替换).具体来说,它们是varchars.
如果我不检查null并在这些实例中分配string.empty:
if (null == _PatternOrdinal)
{
rs.PatternOrdinal = string.Empty;
}
else
{
rs.PatternOrdinal = _PatternOrdinal;
}
Run Code Online (Sandbox Code Playgroud)
...它抛出异常," 参数化查询"(@Unit varchar(25),@ ReportID int,@ NextExecution datetime,@ NextEx'需要参数'@PatternOrdinal',这是未提供的. "
IOW,如果代码只是这样:
rs.PatternOrdinal = _PatternOrdinal;
Run Code Online (Sandbox Code Playgroud)
...而不是上面的if块,它崩溃了.
所以我必须用几个参数做到这一点.是否有一种不那么冗长的方法来规避这种周期性的脱轨?
您可以使用null-coalescing运算符:
rs.PatternOrdinal = _PatternOrdinal ?? string.Empty;
Run Code Online (Sandbox Code Playgroud)
如果操作数不为null,则返回左侧操作数; 否则它返回右手操作数.
但请注意,空字符串和null值不一样.空字符串仍然是值,但是null表示没有定义的值.
在需要保存null值的情况下,应使用DbNull.Value而不是空字符串.
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |