用户名和密码更改页面,将用户输入的用户名和密码Update到数据库,主要代码如下,问题见代码注释://提交按钮事件
private void ok_Click(object sender, System.EventArgs e)
{
  OleDbConnection conn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../access/db1.mdb"));
  conn.Open();
  //创建数据源与DataSet的桥接器DataAdapter;
  OleDbDataAdapter myAdapter =new OleDbDataAdapter("SELECT ID,username,password FROM admin",conn);  //按书本实例用的是:OleDbCommandBuilder=new OleDbCommandBuilder(myAdapter);但只能更新一个字段,所以要么只能更新用户名,要么只能更新密码,同时更新就出错。我该作怎样修改?我查了MSDN,好像应该直接使用myAdapter的UpdateCommand,但我改来改去都不行,刚学ADO.net,盼指教!  DataSet myDataSet=new DataSet();
  //将数据从数据源加载到 DataSet 中
  myAdapter.Fill(myDataSet,"admin");
  if(old_name.Text.Trim()==myDataSet.Tables["admin"].Rows[0]["username"].ToString()&&old_password.Text.Trim()==myDataSet.Tables["admin"].Rows[0]["password"].ToString())
  {
    myDataSet.Tables["admin"].Rows[0]["username"]=new_name.Text.Trim();
    myDataSet.Tables["admin"].Rows[0]["password"]=new_password2.Text.Trim();
    //将 DataSet 中所作的更改发回数据源
    myAdapter.Update(myDataSet,"admin");
    conn.Close();
  }
  else
  {
    Response.Write("<script>alert('原用户名或密码错误!')</script>");
  }
}

解决方案 »

  1.   

    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    //定义变量分别是CategoryID,CategoryName,Description
    string categoryName, categoryDescription,id;
    TextBox tb;
    tb=(TextBox)(e.Item.Cells[1].Controls[0]);
    id=tb.Text;
    tb = (TextBox)(e.Item.Cells[2].Controls[0]);
    categoryName = tb.Text;
    tb = (TextBox)(e.Item.Cells[3].Controls[0]);
    categoryDescription = tb.Text;
    //联接
    string connstr=System.Configuration.ConfigurationSettings.AppSettings["nothing"];
    SqlConnection conn=new SqlConnection(connstr);
    conn.Open();
    try
    { //更新
    string sql="UPDATE Categories set CategoryName=@CategoryName,Description=@Description WHERE (CategoryID=@CategoryID)";
    SqlCommand cmd=new SqlCommand(sql,conn);cmd.Parameters.Add(new SqlParameter("@CategoryID",SqlDbType.Int));
    cmd.Parameters["@CategoryID"].Value=id.ToString();

    cmd.Parameters.Add(new SqlParameter("@CategoryName",SqlDbType.VarChar));
    cmd.Parameters["@CategoryName"].Value=categoryName;cmd.Parameters.Add(new SqlParameter("@Description",SqlDbType.VarChar));
    cmd.Parameters["@Description"].Value=categoryDescription;

    cmd.ExecuteNonQuery();
    //取消
    this.DataGrid1.EditItemIndex = -1;
    this.link();
    }
    catch(Exception error)
    {
    this.Response.Write(error.ToString ());
    }
    finally
    {
    conn.Close();
    }
      

  2.   

    ...
    myDataSet.Tables["admin"].Rows[0].BeginEdit();
    myDataSet.Tables["admin"].Rows[0]["username"]=new_name.Text.Trim();
    myDataSet.Tables["admin"].Rows[0]["password"]=new_password2.Text.Trim();
    myDataSet.Tables["admin"].Rows[0].EndEdit();
      

  3.   

    看看这个吧
    http://www.bbchome.com/thbbs/get.asp?get=65049
      

  4.   

    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    //定义变量分别是CategoryID,CategoryName,Description
    string categoryName, categoryDescription,id;
    TextBox tb;
    tb=(TextBox)(e.Item.Cells[1].Controls[0]);
    id=tb.Text;
    tb = (TextBox)(e.Item.Cells[2].Controls[0]);
    categoryName = tb.Text;
    tb = (TextBox)(e.Item.Cells[3].Controls[0]);
    categoryDescription = tb.Text;
    //联接
    string connstr=System.Configuration.ConfigurationSettings.AppSettings["nothing"];
    SqlConnection conn=new SqlConnection(connstr);
    conn.Open();
    try
    { //更新
    string sql="UPDATE Categories set CategoryName=@CategoryName,Description=@Description WHERE (CategoryID=@CategoryID)";
    SqlCommand cmd=new SqlCommand(sql,conn);cmd.Parameters.Add(new SqlParameter("@CategoryID",SqlDbType.Int));
    cmd.Parameters["@CategoryID"].Value=id.ToString();

    cmd.Parameters.Add(new SqlParameter("@CategoryName",SqlDbType.VarChar));
    cmd.Parameters["@CategoryName"].Value=categoryName;cmd.Parameters.Add(new SqlParameter("@Description",SqlDbType.VarChar));
    cmd.Parameters["@Description"].Value=categoryDescription;

    cmd.ExecuteNonQuery();
    //取消
    this.DataGrid1.EditItemIndex = -1;
    this.link();
    }
    catch(Exception error)
    {
    this.Response.Write(error.ToString ());
    }
    finally
    {
    conn.Close();
    }
      

  5.   

    上面什么啊明明是在查询语句中
    SELECT ID,username,password FROM admin用了几个关键字
    改成:
    SELECT [ID],username,[password] FROM [admin]再试试
      

  6.   

    自己按你的要求改一下吧Private Sub modifyNode()
            Dim nodeName As String
            Dim modifyCmd As String
            Dim conn As OleDbConnection
            Dim cmd As OleDbCommand
            nodeName = InputBox("please input node name", "input node name", "")
            If Not nodeName.Equals("") Then
                modifyCmd = "Update subject set " _
                            & "name='" & nodeName _
                            & "' where id=" & Me.curNodeId
                Try
                    conn = Me.getDBConnect
                    conn.Open()
                    cmd = New OleDbCommand(modifyCmd, conn)
                    cmd.ExecuteNonQuery()
                Catch ex As Exception
                    Console.WriteLine(ex)
                Finally
                    conn.Close()
                End Try
                Me.initSubjectTree()
            End If
        End Sub
      

  7.   

    现在CSDN上的人越来越懒了,看别人的问题都是囫囵吞枣,唉,问问题比看书更慢,还是自己慢慢看书吧。结账!