如何用字符串中的双撇号替换撇号?

时间:2011-10-12 22:33:57

标签: c# sql

我有一个字符串

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#中操作它?

5 个答案:

答案 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”]。值