我正在使用oledb从.xls文件中检索数据,并使用下面的行将其分配给字符串变量Values
:
values += "'" + System.Security.SecurityElement.Escape(row[i].ToString()) + "',";
对于最佳情况,它很好,但如果任何单元格包含值\0
,则此后values
变量将不会更新其他值。我该怎样摆脱它?
答案 0 :(得分:3)
你可以很容易地从字符串中删除空字符:
text = text.Replace("\0", "");
...但有没有办法可以使用预准备语句而不是将值直接放入SQL?或者OLEDB不支持吗?
答案 1 :(得分:2)
您可以使用条件运算符(condition ?? true:false)来检查即将到来的值是否为\0
我只是修改这个
values += "'" + System.Security.SecurityElement.Escape(row[i].ToString()!="\0"?row[i].ToString():"") + "',";
或者你可以使用这个。
values += "'" + System.Security.SecurityElement.Escape(row[i].ToString()??"") + "',";