SQL = "insert into ask (que,que1 ) values ('" +
          ask.Text + "','" + TextBox1.Text + "')";
TextBox1文本里包括’字符,SQL出错,咋办呢

解决方案 »

  1.   

    AOD.net 参数比如       public DataRow 仓库信息(string 仓库编码)
            {
                using (SQLBase MyBase = new SQLBase(Server.ERPLink))
                {
                    SqlParameter[] arrParameter = new SqlParameter[1];
                    arrParameter[0] = new SqlParameter("@仓库编码", SqlDbType.VarChar, 20);
                    arrParameter[0].Value = 仓库编码;                return MyBase.ReturnDataRow("select * from Warehouse where cWhCode=@仓库编码", arrParameter);
                }
            }
      

  2.   

    将SQL变量参数化用sqlParameter或者将该字符替换掉。
      

  3.   

    SQL = "insert into ask (que,que1 ) values ('" + 
              ask.Text.Trim().ToString() + "','" + TextBox1.Text.Trim().ToString() + "')"; 
      

  4.   

    SQL = @"insert into ask (que,que1 ) values ('" + 
              ask.Text + "','" + TextBox1.Text + "')"; 也可以用参数 string sqlStr =  "insert into ask (que,que1 ) values (@ask,@text1)";                 SqlParameter[] _param ={
           new SqlParameter("@ask",SqlDbType.DateTime),
           new SqlParameter("@text1",SqlDbType.DateTime) 
        };
                    _param[0].Value = ask.Text;
                    _param[1].Value = TextBox1.Text;
      SqlHelper.ExecuteNonQuery(Conn, CommandType.Text, sqlStr ,_param);PS:我用的是SqlHelper
      

  5.   

    TextBox1.Text.Replace("'","''")
    在SQL语句之前
      

  6.   

     "insert into ask (que,que1 ) values ('" + 
              ask.Text.Replace("'","")  + "','" + TextBox1.Text.Replace("'","") + "')"; 
      

  7.   

    1.将字符串中单引号替换
    2.参数化用sqlParameter建议楼主少用拼SQL的方式,容易出错,效率也不高.
      

  8.   

       直接先去掉’
     SQL = @"insert into ask (que,que1 ) values ('" + 
              ask.Text + "','" + TextBox1.Text + "')"; 
      

  9.   


    恩~
    如果是直接拼接的SQL语句要把1个单引号替换成2个单引号。
    如果是使用命令参数的非动态拼接的SQL就不用替换了。
    如果是使用命令参数的动态拼接的SQL还是要把1个单引号替换成2个单引号。
      

  10.   

    虽然上面都说了,但对于你来说应该还是这个 TextBox1.Text.Replace("'","''") 最简单