Заменить «с» во всех текстовых полях в моей программе - PullRequest
0 голосов
/ 27 ноября 2010

Итак, в моей программе, наверное, около 50 текстовых полей в разных местах.Я знаю, как заменить одиночную кавычку чем-то (в данном случае '-> \'), но я думаю, что должен быть лучший способ сделать это, чем пройти и добавить определенный код для каждого отдельного текстового поля.Я должен сделать это, потому что, когда этот материал отправляется в базу данных, если есть одиночная кавычка, он выдает ошибку.Есть ли способ изменить поведение элемента управления TextBox по умолчанию, чтобы все текстовые поля в программе автоматически заменяли все одинарные кавычки на \ '?

РЕДАКТИРОВАТЬ:

     string statement = "select count(*) from users where username='@username'";
     MySqlCommand command = new MySqlCommand(statement, conn);
     command.Parameters.AddWithValue("@username", username);
     if (Convert.ToInt32(command.ExecuteScalar()) == 1)

Я играл спарамертеризованный код и это то, что у меня есть сейчас.Насколько я понимаю, строка оператора в основном такая же, как и раньше, но там, где я имел обыкновение иметь переменную «имя пользователя», я знаю, что использовал параметр (который я назвал @username), тогда команда была создана.Затем в файле parameters.addwithvalue он заменяет имя пользователя параметра тем, что находится в переменной username.К сожалению, это не работает для меня, и я не вижу, как это помогает, потому что имя пользователя все еще застревает в команде?

РЕДАКТИРОВАТЬ: нашел проблему, в утверждении, которое вам не нужнопоставить одинарные кавычки вокруг '@ username'

так, чтобы оно было:

string statement = "select count(*) from users where username=@username";

Ответы [ 3 ]

6 голосов
/ 27 ноября 2010

Не используйте конкатенацию для построения запросов SQL. Используйте правильные параметризованные запросы . Это сделает повторные запросы немного быстрее, а также устранит дезинфицирующий код ввода (например, заменив ' на \') и атаки SQL-инъекцией.

1 голос
/ 27 ноября 2010

Вы должны использовать параметризованные запросы не только для решения возникшей проблемы, но и для уменьшения подверженности SQL-инъекциям. Когда вы используете конкатенацию строк для построения SQL-запросов, вы подходите для SQL-инъекций атак.

0 голосов
/ 27 ноября 2010

U может использовать функцию JavaScript onKeyUp или событие OnTextChanged asp.net для создания функции, которая будет изменять кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...