Ответ 1
попробовать
string sql= "insert into gtable (1text, 1memo) " +
"values ('" + textBox3.Text.Replace("'", "''") + "', null)";
Вставка не выполняется, когда используется "". Пример строки: Он мальчик. Я попытался пропустить "" с помощью 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.
попробовать
string sql= "insert into gtable (1text, 1memo) " +
"values ('" + textBox3.Text.Replace("'", "''") + "', null)";
Попробуйте это
string sql= "insert into gtable (1text,1memo) values (@col1,NULL)";
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Parameters.AddWithValue("@col1",textBox3.Text);
con.Open();
Чтобы вставить одинарные кавычки в базу данных, замените '
на ''
. В базе данных будет указываться только одна кавычка.
Используйте этот
string sql= "insert into gtable (1text,1memo) values ('"
+ textBox3.Text.Replace("'", "''") + "', null)";
Код останова тот же.
В статье 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);
Лучший способ:
string Name = Server.HtmlEncode(txtName.Text);