带单引号的SQL查询不会检索任何记录

时间:2017-02-22 07:02:22

标签: c# asp.net sql-server ado.net

我目前正在从以下查询select * from TableName WHERE ColumnName ='values''s'执行查询数据集而没有任何错误,并且返回数据集是空行。当我在SQL工作表中执行相同的操作时,它返回数据

  

以下代码参考

string sqlQuery = "select * from TableName WHERE Name ='McNaught''s'";
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlQuery;
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet ds = new DataSet();            
conn.Open();
adapter.Fill(ds);
conn.Close();

3 个答案:

答案 0 :(得分:0)

请试试这个:

string sqlQuery = 'SELECT * FROM TableName WHERE Name ="McNaught\'s"'

答案 1 :(得分:0)

问题是您需要在第二个'之前提供转义序列,以便编译器可以区分先前的撇号。试试这个。

string sqlQuery = "select * from TableName WHERE Name ='McNaught'\'s'";
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlQuery;
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet ds = new DataSet();            
conn.Open();
adapter.Fill(ds);
conn.Close();

答案 2 :(得分:0)

尝试此操作可以使用\转义序列。

string sqlQuery = "select * from TableName WHERE Name ='McNaught\"s'";