如何插入包含单引号或双引号的字符串

时间:2012-08-23 18:01:09

标签: c# sql sql-server-2008

如果我想插入包含引号的语句,怎么可能?

例如我有一个文本框,我输入:

Future Swami Vivekananda’s grand father's name was "____" .

3 个答案:

答案 0 :(得分:7)

如果你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');

答案 1 :(得分:4)

使用参数化查询 - 然后引用 。此外 - 您的数据库不会被SQL注入接管 - 所以真的赢了/赢。

答案 2 :(得分:0)

你可以加倍报价:

INSERT INTO table
VALUES ('Future Swami Vivekananda''s grand father''s name was "____"')