private void button1_Click(object sender, EventArgs e)
        {
            
            if (txtOldpwd.Text.Trim() == "" || txtNewpwd.Text.Trim() == "" || txtOkpwd.Text.Trim() == "" )
            {
                MessageBox.Show("请填写完整信息!", "提示");
            }
            else
            {
                DB.cn.Close();
                DB.cn.Open();
                string sql;
                OleDbCommand cmd = new OleDbCommand("", DB.cn);
                sql = "select * from [user] where username='" + uname   + "'and password='" + t  xtOldpwd.Text.Trim() + "'";
                cmd.CommandText = sql;
                if (cmd.ExecuteScalar() == null)
                {
                    MessageBox.Show("密码错误!", "提示");
                }
                else
                {
                    if (txtNewpwd.Text.Trim() != txtOkpwd.Text.Trim())
                    {
                        MessageBox.Show("新密码和确认密码不一致,请重新输入!", "提示");
                    }
                    else
                    {                        sql = "update [user] set password='" + txtOkpwd.Text.Trim() + "' where username='" + txtUser.Text.Trim() + "'";
                        cmd.CommandText = sql;
                        cmd.ExecuteNonQuery();
                        DB.cn.Close();
                        this.Close();
                        MessageBox.Show("密码修改成功!", "成功提示");
                    }
                }
            }
        }其中uname是从登陆窗口传来的用户名,存在一个公共类中。

解决方案 »

  1.   

    断点调试,获取sql的值,然后放到数据库中执行一下
      

  2.   

    txtOkpwd.Text或txtUser.Text是不是喊有能够改变SQL语句语法结构的特殊字符啊....
      

  3.   

     sql = "select * from [user] where username='" + uname  + "'and password='" + t  xtOldpwd.Text.Trim() + "'"; 
    看下红色部分的问题,
      

  4.   

    sql = "update [user] set [password]='" + txtOkpwd.Text.Trim() + "' where username='" + txtUser.Text.Trim() + "'"; 
      

  5.   

    sql = "update [user] set password='" + txtOkpwd.Text.Trim() + "' where username='" + txtUser.Text.Trim() + "'";
    //sql = "update [user] set [password]='" + txtOkpwd.Text.Trim() + "' where username='" + txtUser.Text.Trim() + "'";楼主,下次出着问题了,你自己设断点调试。别耽误大家时间。