"'where user='"这里少个空格,而且一般不推荐使用直接SQL语句,防注入

解决方案 »

  1.   

    " + textBox3.Text.Trim() + "这东西本来就是 string
    你不用再加引号了。
      

  2.   

    问一下 andybang  少个空格???
      

  3.   

    'where要变成' where,之间要有空格
      

  4.   

    不是空格的问题
    where前面有'隔开  不影响where
    楼主你把sql 输出来啊
      

  5.   

    在where前加上空格还是不行  ,奇怪!!高人指点一下!!
      

  6.   

    sql = "update UserInfo set Password='" + textBox3.Text.Trim() + "'where user='" + textBox1.Text.Trim() + "'";把sql.toString(),然后放在数据库查询分析器中执行看看,能看到根据具体的错误提示。怀疑是你的txtBox1.Text内容有问题。
      

  7.   

    sql = "update UserInfo set Password='" + textBox3.Text.Trim() + "'where user='" + textBox1.Text.Trim() + "'";你看下你自己数据库里的password和user列名是否和这个更新语句里的列名一样
      

  8.   

    sql = "update UserInfo set Password='" + textBox3.Text.Trim() + "'where user='" + textBox1.Text.Trim() + "'";或者就是你那sql 前面定义 string 了吗?
      

  9.   

     try
      {
      DB.cn.Close();
      DB.cn.Open();
      cmd.ExecuteNonQuery();
      DB.cn.Close();
      this.Close();
      MessageBox.Show("密码修改成功!", "成功提示");
      }你看下你try下面为什么数据库先关了然后再开然后再关呢...
      

  10.   

    调试一下,可以看到具体的错误出处啊,你把报错的内容写出来大家才能帮你找问题啊。直接把运行过的sql写出来看一下。
      

  11.   

    先在查询分析器里把SQL语句运行一下看能不能通过啊?如果行,那就是代码问题;如果不行,那就是SQL语句问题。再来找原因。
      

  12.   

    sql = "update UserInfo set Password='" + textBox3.Text.Trim() + "' where [user]='" + textBox1.Text.Trim() + "'";试试这个
      

  13.   

    password和user
    用方括号括起来,像27楼的。
      

  14.   

    user 是关键字。需要加上[user]
      

  15.   

    设下断点,取出sql语句放到查询分析器中试下不就知道了么?
    以后这样的题目最好不要放在论坛上来,学会自己动手解决问题,以后你写程序难道还把我们大家带在身边不成
      

  16.   

    设下断点,取出sql语句放到查询分析器中试下不就知道了么?
    以后这样的题目最好不要放在论坛上来,学会自己动手解决问题,以后你写程序难道还把我们大家带在身边不成
      

  17.   

    设下断点,取出sql语句放到查询分析器中试下不就知道了么?
    以后这样的题目最好不要放在论坛上来,学会自己动手解决问题,以后你写程序难道还把我们大家带在身边不成
      

  18.   

    sql = "update UserInfo set Password='" + textBox3.Text.Trim() + "' where user='" + textBox1.Text.Trim() + "'";设个断点  把SQL拷贝出来,在SQL查询分析器中执行以下看看结果
      

  19.   

    sql = "update UserInfo set Password='" + textBox3.Text.Trim() + "'where user='" + textBox1.Text.Trim() + "'";断点一下,没猜错的话,是你的SQL组合有问题,应该是sql = "update UserInfo set Password=" + textBox3.Text.Trim() + "where user=" + textBox1.Text.Trim() + "";
    SQL组合的时候不要 '
      

  20.   

    可以使用参数传递啊
    sql = "update UserInfo set Password = @PASSWORD Where User=@User";
    SqlParameter[] parameters = new SqlParameter[]
    {
        new SqlParameter(@PASSWORD,textBox3.Text.Trim()),
        new SqlParameter(@User,textBox1.Text.Trim()),
    };int a =0;
    SqlConnection con = new SqlConnection("数据库连接语句")
    using (OracleCommand cmd = new OracleCommand(sql, con))
    {
        cmd.Parameters.AddRange(parameters);
        a = Convert.ToInt32(cmd.ExecuteScalar().ToString());
        cmd.Clone();
        cmd.Dispose();
    }if(a>0)
    {
        //成功
    }
    else
    {
        //失败
    }
      

  21.   

    SqlParameter[] parameters = new SqlParameter[]
    {
      new SqlParameter(@PASSWORD,textBox3.Text.Trim()),
      new SqlParameter(@User,textBox1.Text.Trim())
    };
    第三行的最后一个逗号去掉
      

  22.   

    去掉第一个“DB.cn.Close();”试试。
      

  23.   

    下个断点,走到这一步时将sql语句复制出来,在数据库中执行一下看提示什么错误,再来改你程序中的语句!
      

  24.   

    非常感谢 falconfei  28楼的哥们  你太牛了!!解决了