英文的内容,输入 xi'an   后台就出错:执行SQL出现错误!
后台 sql为: 
string name = this.name.Text.Trim();
       
 string cmdSql = "update hotel set name='" + name + "' where id=" + id;

解决方案 »

  1.   

    建议你用参数   但把'替换成''也行 SQL会进行转意
      

  2.   

    转意不现实,参数化比较合理,但应该如何参数化?谁能给个代码? string cmdSql = "update hotel set name=@name where id=" + id;怎么把参数加进来?
      

  3.   

    进行转义,比如xi'an写成xi''an就可以了
      

  4.   

    string cmdSql = "update hotel set name=@name where id=@id";
     
                    SqlParameter[] param =new SqlParameter[2];
                    param[0]=new SqlParameter("@name",name);
                    param[1] = new SqlParameter("@id", id);
    .....
                    comm.CommandText = cmdSql;
                    comm.Parameters.Add(param);
                    comm.ExecuteNonQuery();
      

  5.   

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    // Create the command and set its properties.
    SqlCommand command = new SqlCommand();
    command.Connection = connection;
    command.CommandText = "select* from product where id=@productid";// Add the input parameter and set its properties.
    SqlParameter parameter = new SqlParameter("@productid",1);
    command.Parameters.Add(parameter);
      

  6.   


    这个很好,但有我的sql执行过程是放到一个公共类里的,不知道应该如何传递过去
    公共类://执行简单的SQL语句,返回布尔值
        public bool NoReturnSql(string Sql, SqlParameter[] param)//这样好像不对
        {
            Open();
            mCom.CommandType = CommandType.Text;
            mCom.CommandText = Sql;
            mCom.Parameters.Add(param);
            try
            {
                mCom.ExecuteNonQuery();
                return true;  //执行成功
            }
            catch
            {
                throw new Exception("执行SQL出现错误!" + Sql);
                return false; // 失败
            }
            Close();    }
    页面cs:string cmdSql = "update hotel set name=@name where id=@id";
    SqlParameter[] param =new SqlParameter[2];
    param[0]=new SqlParameter("@name",name);
    param[1] = new SqlParameter("@id", id);if (conn.NoReturnSql(cmdSql, param ))
            {
                Response.Write("<script>alert('成功')</script>");        }
            else
            {
                Response.Write("<script>alert('失败')</script>");        }
      

  7.   

    出错信息:
    SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 SqlParameter[] 对象。 mCom.Parameters.Add(param);
      

  8.   

      public bool NoReturnSql(string Sql, params DbParameter[] param)//这样看看