【发布时间】:2018-11-26 21:45:33
【问题描述】:
最近我了解到,您可以在设置 SqlParameter 的值时检查值是否为空,如果为空,则设置为空。这是使用空合并运算符??,非常简单:
cmd.Parameters.Add(new SqlParameter("ID", ID.Text ?? (object)DBNull.Value);
现在谁能更详细地解释下一个示例?显然,它正在检查字符串以查看它是否为空,但是 ? 运算符之后的所有内容如何工作?另外?? 和? 在性能方面有什么区别?
cmd.Parameters.Add(new SqlParameter("ID", ID.Text == "" ? (object)DBNull.Value : ID.Text));
【问题讨论】:
-
请注意,如果
ID是一个控件,ID.Text ??通常什么都不做(因为大多数控件将返回""而不是null)。 -
另外,我建议阅读
string.IsNullOrEmpty。 -
我投票结束这个问题,因为它是一个“帮我阅读手册”的问题
-
@mjwills
ID是一个文本框,它经常返回""并插入我的数据库而不是 null。也可以,我可以使用string.IsNullOrEmpty。只是没想到,专注于右侧的操作。
标签: c# sql-server object operators