MySQL ведущий пробел с C # - PullRequest
       3

MySQL ведущий пробел с C #

1 голос
/ 22 сентября 2011

Когда я обновляю поле в моей базе данных MySQL, оно всегда добавляет пробел к значению.Я попытался удалить пробел с помощью команды trim и команды replace.Ни один из них не работал.Поэтому я ожидаю, что это не пробел, а какой-то смутный символ ASCII.Вот команды, которые я использовал:

this.foo = result.GetValue(0).ToString().Trim();
this.bar = result.GetValue(0).ToString().Replace(" ","");

Поле, которое оно обновляет, - VARCHAR (xx).Это моя команда обновления MySQL:

            MySqlCommand cmd = new MySqlCommand("UPDATE " + table + " SET " + new_field + " =' " + new_value+ "' WHERE " + field+ "= " + value + "",this.con);

this.con - мое подключение к базе данных MySQL.

К вашему сведению: я использую .NET 3.5CF с DLL-библиотекой mysql.data.cfVisual Studio 2008.

Может кто-нибудь помочь мне с этой проблемой?Это сводит меня с ума.

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Ну, да, у вас есть пробел в SQL:

"UPDATE " + table + " SET " + new_field + " =' " + new_value+ "'

Обратите внимание на бит сразу после "=" - у вас есть кавычка, затем пробел, затем new_value.

Тем не менее, вы не должны помещать значения в SQL непосредственно на первое место - вы должны использовать параметризованные операторы SQL ... в настоящее время вы ожидаете атаки SQL-инъекций, а также потенциальных проблем для честных значений с кавычками.

Вы должны использовать параметризованный SQL для new_value и value здесь ... Я предполагаю, что field и table получены из более "надежных" источников?

1 голос
/ 22 сентября 2011

Кажется, что есть пробел, где * есть

" ='*" + new_value
...