如果我想插入包含引号的语句,它怎么可能?如何插入包含单引号或双引号的字符串
,比如我有一个文本框,我输入:
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