Подтвердить что ты не робот

Одиночные кавычки во время вставки строки в базу данных

Вставка не выполняется, когда используется "". Пример строки: Он мальчик. Я попытался пропустить "" с помощью escape-символа, но я считаю, что это неправильный путь.

textBox3.Text.Replace("'", " \'");
string sql= "insert into gtable (1text,1memo) values ('"+textBox3.Text+"',null)";
        OleDbCommand cmd = new OleDbCommand(sql, con);

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

У меня была возможность заменить "'" на "`", но это также меняет текст в db. Я хочу сохранить "" как то же самое, а также вставить его в db.

4b9b3361

Ответ 1

попробовать

string sql= "insert into gtable (1text, 1memo) " + 
            "values ('" + textBox3.Text.Replace("'", "''") + "', null)";

Ответ 2

Попробуйте это

    string sql= "insert into gtable (1text,1memo) values (@col1,NULL)";
    OleDbCommand cmd = new OleDbCommand(sql, con);
    cmd.Parameters.AddWithValue("@col1",textBox3.Text);
    con.Open();

Ответ 3

Чтобы вставить одинарные кавычки в базу данных, замените ' на ''. В базе данных будет указываться только одна кавычка.

Используйте этот

string sql= "insert into gtable (1text,1memo) values ('" 
            + textBox3.Text.Replace("'", "''") + "', null)";

Код останова тот же.

Ответ 4

В статье MSDN для String.Replace говорится:

Возвращает новую строку, в которой все вхождения указанного символа Unicode или String в текущей строке заменяются другим указанным символом Unicode или String.

В первой строке вы не назначаете значение textBox3.Text для результата вызова этого метода, а это означает, что абсолютно ничего не происходит.

Кроме того, чтобы избежать цитаты в SQL Server, вы просто используете две одиночные кавычки (Примечание: НЕ то же самое, что и двойная кавычка).

Это должно дать ожидаемый результат:

textBox3.Text = textBox3.Text.Replace("'", "''");

Кроме того, вы можете захотеть просмотреть String.Format для нужд конкатенации строк.

String escapedInput = textBox3.Text.Replace("'", "''");
String sql = String.Format("insert into gtable (1text,1memo) values ('{0}',null)", escapedInput);

Ответ 5

Лучший способ:

string Name = Server.HtmlEncode(txtName.Text);