Я знаю, что могу использовать параметры, но что правильный путь состоит в том, чтобы выйти из строковых последовательностей? Запрос мог быть похожим на это:
"INSERT INTO records (ReferenceID,Name,Note,Author) VALUES ('" + ID+ "','" + addlevel.textBox1.Text + "','"+addlevel.textBox2_note.Text+ "','"+Program.Username+"')";
Я ТОЛЬКО любопытен, просто хочу знать:)
Править: Но что относительно этого? "CREATE TABLE "+string".... параметры не может использоваться здесь!
Если вам нужно выполнять операции с базой данных, такие как создание таблиц, то вместо выполнения SQL-строк следует использовать SQL Server Management Objects.
Для операций CRUD параметры абсолютно единственный истинный путь.
UPDATE: Похоже, что клиентская библиотека MySQL содержит вспомогательный метод для этой непродуманной задачи. Можно вызвать MySqlHelper.EscapeString(string).
Правильным способом является использование параметров.
"Просто скажи "нет", чтобы попытаться сделать побег самому - слишком легко ошибиться. Почему вы думаете, что хотите, чтобы экранировали их вручную вместо использования параметров?
. Я думаю, что единственное, что вам нужно сделать, это значение = value.Replace("'', "'')
Конечно, вы не должны этого делать, но вы это знаете.
Правка: Очевидно, что все это неправильно для MySQL. Хотя для PostgreSQL, MS SQL и Oracle это должно работать.
.Если вам действительно, действительно, действительно нужно выполнить экранирование самостоятельно (чего нет в вашем примере):
string EncodeMySqlString(string value) {
return value.Replace(@"\", @"\\").Replace("'", @"\'")
}