SqlConnection thisConnection = new SqlConnection(Form_BookManager.strConnection);
                SqlDataAdapter sqldata = new SqlDataAdapter("select 密码 from manager where 用户名=" + Form_BookManager.user, thisConnection);
                DataSet ds = new DataSet();
                SqlCommandBuilder sqlbuilder = new SqlCommandBuilder(sqldata);
                sqldata.Fill(ds, "manager");
            //此处写检验数据库中的密码和修改密码,这不会
                sqldata.Update(ds, "manager");
这段代码对应form中的一个按钮,form中有textbox1,textbox2 这2个控件,用来接收用户输入的密码,然后一按这个按钮就检验数据库表中的密码如果和textbox1.Text一样则将textbox2.Text写入到数据库表中的密码字段。
说白了也就是个更改密码的功能。

解决方案 »

  1.   


    forecah( datarow zc in ds.Table["Table"].rows )
    {
    if(ds["密码字段"]==textbox1.text);
       ds.["密码字段"]=textbox2.text;
    }sqldata .update();
      

  2.   

    string strUpdate = "";
    if(ds.Table["manager"].Rows.Count ==1)
    {
       if(ds.Table["manager"].Rows[0][0].ToString() == textbox1.Text.Trim())
       {
          strUpdate = "update manager set 密码 = '" + textbox2.Text.Trim() +"' where 用户名='" + Form_BookManager.user + "'";    ......
       }
    }差不多这样子.
      

  3.   

    SqlDataAdapter sqldata = new SqlDataAdapter("select 密码,用户名或者ID from manager where 用户名=" + Form_BookManager.user, thisConnection);
                    DataSet ds = new DataSet();
                    SqlCommandBuilder sqlbuilder = new SqlCommandBuilder(sqldata);
                    sqldata.Fill(ds, "manager"); 
    foreach (DataRow dr in dt.Rows)
                    {
                           
                             if(dr["密码字段"]==textbox1.text)
                               {
                                        sql语句="update manager set 密码 = '" + textbox2.Text.Trim() +"' where 用户名=" + dr["username"]+"或者id=dr["id"];              
                                }
                   }
      

  4.   

    foreach(DataRow row in ds.Tables["manager"].Rows)
    {
       if (row["password"]==this.TextBox1.Text.Trim())
       {
             //更改
             row["password"]=this.TextBox2.Trim();
       }
    }
      

  5.   

    SqlConnection thisConnection = new SqlConnection(Form_BookManager.strConnection);
                SqlDataAdapter sqldata = new SqlDataAdapter("select 密码 from manager where 用户名='" + Form_BookManager.user.Trim() + "'", thisConnection);
                //Form_BookManager.user 是当前登陆的用户名
                DataSet ds = new DataSet();
                sqldata.Fill(ds, "manager");
                SqlCommandBuilder sqlbuilder = new SqlCommandBuilder(sqldata);            foreach (DataRow row in ds.Tables["manager"].Rows)
                {
                    if (row["密码"] == textBox1.Text.Trim())
                    {
                        row["密码"] = textBox2.Text.Trim();//更改
                        sqldata.Update(ds, "manager");
                        MessageBox.Show("信息", "修改密码成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        label4.Text = "原密码错误";
                    }
                }
            }
            我在textBox1.Text中的密码明明正确,可还是执行label4.Text = "原密码错误";为什么啊
      

  6.   

    sqldata.Fill(ds, "manager");  //异常:列名 'user1' 无效。
    user1是当前登录的用户,也就是Form_BookManager.user 的值
      

  7.   

    sqldata.Fill(ds, "manager");  //异常:列名 'user1' 无效。
    user1是当前登录的用户,也就是Form_BookManager.user 的值
    -------------------------------------------------------------
    这个我找到错误了,但是说原密码错误那个还是不行
      

  8.   

    这样试下:SqlConnection thisConnection = new SqlConnection(Form_BookManager.strConnection);
                SqlDataAdapter sqldata = new SqlDataAdapter("select 密码 from manager where 用户名=" + Form_BookManager.user, thisConnection);
                DataSet ds = new DataSet();
                SqlCommandBuilder sqlbuilder = new SqlCommandBuilder(sqldata);
                sqldata.Fill(ds, "manager");
                //此处写检验数据库中的密码和修改密码,这不会
                if (ds.Tables["manager"].Rows[0]["密码"] == this.TextBox1.Text.Trim())
                {
                    //更改
                    ds.Tables["manager"].Rows[0]["密码"] = this.TextBox2.Trim();
                }
                else
                {
                    //说明密码错误
                    //....
                }
                sqldata.Update(ds, "manager");
      

  9.   

    可以这么来做:举个例子:SqlConnection con = new SqlConnection("server=.;database=student;uid=sa;pwd=0421");
                SqlDataAdapter sda = new SqlDataAdapter("select * from user", con);
                SqlCommandBuilder builder = new SqlCommandBuilder(sda);
                DataSet ds = new DataSet();
                sda.Fill(ds, "user");            //比如你的用户名是userName,原密码是oldPwd,新密码是newPwd
                for (int i = 0; i < ds.Tables["user"].Rows.Count; i++)
                {
                    if (ds.Tables["user"].Rows[i]["name"] == userName)
                    {
                        if (ds.Tables["user"].Rows[i]["pwd"] == oldPwd)
                        {
                            ds.Tables["user"].Rows[i]["pwd"] = newPwd;
                            //提示更改成功
                            //MessageBox.Show
                        }
                        else
                        {
                            //提示密码错误
                            //MessageBox.Show
                        }
                        break;
                    }
                }
      

  10.   

    或者你就别用DataAdapter了,直接写Sql语句...这样来做:
    举个例子: SqlConnection con = new SqlConnection("server=.;database=student;uid=sa;pwd=0421");
                //通过用户名来查询出密码,假如用户名是userName
                SqlCommand cmd =new SqlCommand ("select pwd from user where name='"+userName+"'", con);
                //打开数据库连接
                con.Open();
                //判断密码是否正确
                if (oldPwd == Convert.ToString(cmd.ExecuteScalar()))
                {
                    //说明密码正确,更新
                    SqlCommand cmdUpdate = new SqlCommand("update user set pwd='" + newPwd + "' where name='" + userName + "'", con);
                    cmdUpdate.ExecuteNonQuery();
                }
                else
                {
                    //说明密码不正确
                    //提示
                }
                //关闭数据库
                con.Close();
      

  11.   

    第一个方法不行是吧..我也猜到了...那还是因为你用了SqlCommanBuilder的原因,它有很多限制条析,它是需要主键的...而你只取了密码,不包含主键,它更新也不知道怎么更新啊...第二种方法,第三种方法应该都是可行的..如果你第二种方法不行,可以把相关代码贴出来看下...