C# 是否有一种不那么冗长和笨拙的方法来保证空SQL参数的安全?
我有代码可以将记录插入到SQL Server表中,在某些情况下,该表有一些空值(如果不先用伪空(空)VAL替换)。具体来说,他们是瓦查尔人 如果在这些实例中未检查null并分配string.empty:C# 是否有一种不那么冗长和笨拙的方法来保证空SQL参数的安全?,c#,sql-server,varchar,C#,Sql Server,Varchar,我有代码可以将记录插入到SQL Server表中,在某些情况下,该表有一些空值(如果不先用伪空(空)VAL替换)。具体来说,他们是瓦查尔人 如果在这些实例中未检查null并分配string.empty: if (null == _PatternOrdinal) { rs.PatternOrdinal = string.Empty; } else { rs.PatternOrdinal = _PatternOrdinal; } …它引发异常,“参数化查询'(@Unit varch
if (null == _PatternOrdinal)
{
rs.PatternOrdinal = string.Empty;
}
else
{
rs.PatternOrdinal = _PatternOrdinal;
}
…它引发异常,“参数化查询'(@Unit varchar(25),@ReportID int,@NextExecution datetime,@NextEx'需要未提供的参数'@PatternOrdinal'
如果代码是这样的:
rs.PatternOrdinal = _PatternOrdinal;
…而不是上面的if块,它崩溃了
因此,我必须使用几个参数来实现这一点。有没有一种更简单的方法来避免这种周期性脱轨?您可以使用:
如果操作数不为null,则返回左侧操作数;否则返回右侧操作数
但请注意,空字符串和null
值不相同。空字符串仍然是值,但null
表示没有定义的值
在需要保存null
值的情况下,应该使用DbNull.Value
而不是空字符串
rs.PatternOrdinal = _PatternOrdinal ?? string.Empty;