SqlConnection con = new SqlConnection(ConStr);            string insertString = string.Format("UPdate Products Set ProductName='{0}' Where ProductID='{1}'", txt_ProductName.Text,i);
            SqlCommand cmd = new SqlCommand(insertString, con);            con.Open();
            int rows = cmd.ExecuteNonQuery();            con.Close();
            con.Dispose();
            this.Close();
一般情况下这条SQL执行正常。
但当txt_ProductName.Text的值中包含 's 时。这条SQL语句就会报错,提示如下
【's' 附近有语法错误。字符串 '' 后的引号不完整。】应该怎样写才正确呢?希望高手指教

解决方案 »

  1.   

    你把这些东西参数化
    试试看
    参数化还可以仿SQl注入
    http://archive.cnblogs.com/a/1988953/
      

  2.   

    和's无关吧,你试下'a ,'b,'c还是会说你错,很9没碰到这个问题了,要把单引号转为双引号
    ps.一直用SqlHelper没遇到这个问题,应该是SqlHelper处理掉了
      

  3.   

    方案1:
    string insertString = string.Format("UPdate Products Set ProductName='{0}' Where ProductID='{1}'", txt_ProductName.Text.Replace("'", "''"),i.Replace("'", "''"));方案2:string insertString = "UPdate Products Set ProductName= @name Where ProductID=@id";
    SqlCommand cmd = new SqlCommand(insertString, con);
    cmd.Parameters.AddWithValue("@name", txt_ProductName.Text);
    cmd.Parameters.AddWithValue("@id", i);
    con.Open();
    int rows = cmd.ExecuteNonQuery();