在字符串中使用Conditional运算符
本文关键字:Conditional 运算符 字符串 | 更新日期: 2023-09-27 18:24:08
如何在字符串中使用条件运算符?
为什么缺少TO_DATE(
和'
的字符串的值是单引号?我能做些什么来修复它?
StringBuilder sb = new StringBuilder();
//code...
sb.AppendLine(" '" + txtStatus.Text + "',");
sb.AppendLine(" TO_DATE(" + dtpEligDate.Value.ToString("yyyyMMddHHmmss") == "" ? "null" : dtpEligDate.Value.ToString() + "),");
sb.AppendLine(" '" + txtCoverageEndReason.Text == "" ? "null" : txtCoverageEndReason.Text + "',");
//code...
字符串值:
'',
7/19/2013 9:04:35 AM),
',
我的理解是,这不是因为缺少转义符,而是因为使用了条件运算符。
谢谢你的帮助!
这是因为运算符的优先级,将()
添加到三元运算符中,它就会起作用:
sb.AppendLine("TO_DATE(" +
(dtpEligDate.Value.ToString("yyyyMMddHHmmss") == "" ? "null" : dtpEligDate.Value.ToString()) +
"),");
基本上,它将首先连接字符串(+
),然后计算条件语句(?:
),但您希望它相反。括号将修复它。
附带说明:最好使用参数化查询。