我有一个字符串
good overview of ESP's in more detail than you probably need
。
插入SQL表时会出错。所以我想用双撇号替换字符串中的撇号,如
good overview of ESP''s in more detail than you probably need
如何在c#中操作它?
答案 0 :(得分:10)
非常简单:
string s = "good overview of ESP's in more detail than you probably need.";
string escaped = s.Replace("'","''");
注意:使用命令参数通常更安全。特别是如果输入字符串的值不受代码控制(即用户条目)。
答案 1 :(得分:9)
使用Parameter对象。
myCommand.InsertCommand.Parameters.Add("@myString", SqlDbType.VarChar, 200);
myCommand.InsertCommand.Parameters["@myString"].Value = @"good overview of ESP's in more detail than you probably need.";
答案 2 :(得分:2)
我多年来一直在研究这个问题。在客户端上执行,用两个单引号替换单引号。如果您正在执行具有多个varchar输入参数的sp,则此方法有效。唯一的问题是SQL注入,即人们可以看到你在客户端上做什么,这从来都不是一件好事。解决这个问题的唯一方法是在服务器上使用SQL参数,正如他们之前所说的那样。
答案 3 :(得分:0)
String.Replace(String,String)
应该可以正常工作。在此示例中,您需要:
String.Replace("'", "''")
但是,我认为这不会解决您的问题。我想你更适合寻找:
String.Replace("'", "\'")
原因是MySQL,我想其他版本的SQL,希望字符串用单引号括起来。
答案 4 :(得分:0)
myCommand.InsertCommand.Parameters.Add(“@ myString”,SqlDbType.VarChar,200); myCommand.InsertCommand.Parameters [ “@的myString”]。值