Обрабатывать NUL (\ 0) в C # - PullRequest
1 голос
/ 19 мая 2011

Я извлекаю данные из файла .xls, используя oledb, и назначаю их строковой переменной Values, используя строку ниже:

values += "'" + System.Security.SecurityElement.Escape(row[i].ToString()) + "',";

В лучшем случае он работает нормально, но если какая-либо ячейка содержит значение \0, после этого переменная values не будет обновляться с дальнейшими значениями. Как от этого избавиться?

Ответы [ 2 ]

3 голосов
/ 19 мая 2011

Ну, вы можете действительно легко избавиться от нулевых символов в строке:

text = text.Replace("\0", "");

... но есть ли способ использовать подготовленный оператор вместо помещения значений непосредственно в SQL?Или OLEDB не поддерживает это?

2 голосов
/ 19 мая 2011

Вы можете использовать условный оператор (условие ?? истина: ложь), чтобы проверить, является ли приходящее значение \0 или нет. Просто измените это значение на

values += "'" + System.Security.SecurityElement.Escape(row[i].ToString()!="\0"?row[i].ToString():"") + "',";

или вы можете использовать это.

values += "'" + System.Security.SecurityElement.Escape(row[i].ToString()??"") + "',";
...