如果我想插入包含引號的語句,它怎麼可能?如何插入包含單引號或雙引號的字符串
,比如我有一個文本框,我輸入:
Future Swami Vivekananda’s grand father's name was "____" .
如果我想插入包含引號的語句,它怎麼可能?如何插入包含單引號或雙引號的字符串
,比如我有一個文本框,我輸入:
Future Swami Vivekananda’s grand father's name was "____" .
如果use properly parameterized statements,你應該不需要擔心。事情是這樣的(不過請不要向我學習C#技術):
string sql = @"UPDATE dbo.table SET col = @p1 WHERE ...;";
string myString = @"hello'foo""bar";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
SqlParameter p1 = cmd.Parameters.AddWithValue("@p1", myString);
cmd.ExecuteNonQuery();
(雖然你真的應該使用存儲過程)
如果您手動構建字符串(你真的,真的,真的不應該這樣做),你需要他們,加倍逃避字符串分隔符:
INSERT dbo.tbl(col) VALUES('hello''foo"bar');
你可以告訴我一個小例子嗎? –
我的問題是引號表示單個或雙.. –
只有單引號(''')是SQL Server端的問題。 –
使用參數化查詢 - 再報價不物質根本沒有。另外 - 你的數據庫不會被SQL注入接管 - 所以贏/贏是真的。
您可以加倍報價:
INSERT INTO table
VALUES ('Future Swami Vivekananda''s grand father''s name was "____"')
它的客戶端輸入,所以我想如何以這種方式管理它? –
Rick - 在形成插入語句之前,您應該能夠用兩個單引號替換用戶輸入中的(單引號)。但是,真的,您應該重構代碼以使用參數化查詢(如Aaron所建議的)或使用存儲過程。 –
使用參數化的SQL語句。 – dasblinkenlight