private void roleDataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)

string str_id_card = roleDataGrid.DataKeys[(int)e.Item.ItemIndex].ToString(); //主键值

string str_real_name = ((TextBox)e.Item.FindControl("TextBox1")).Text.Trim();

string str_department =  ((DropDownList)e.Item.Cells[2].FindControl("Dropdownlist1")).SelectedValue; ..........
接一来就是写SQl语句更新数据库!
}

解决方案 »

  1.   

    不是这样了,我写的SQl语句如下:
    String updateCmd = "UPDATE Table1 SET name = @Name, unit = @Unit, number = @Number, sort = @Sort, "+ "place = @Place, re = @Re where name = @OldName";
    myCommand.Parameters["@OldName"].Value =((TextBox)e.Item.FindControl("Name1")).Text;}
    myCommand.Parameters["@Name"].Value =((TextBox)e.Item.FindControl("Name1")).Text;
    myCommand.Parameters["@Unit"].Value =((TextBox)e.Item.FindControl("Unit1")).Text;
    myCommand.Parameters["@Number"].Value =((TextBox)e.Item.FindControl("Number1")).Text;
    myCommand.Parameters["@Sort"].Value =((TextBox)e.Item.FindControl("Sort1")).Text;
    myCommand.Parameters["@Place"].Value =((TextBox)e.Item.FindControl("Place1")).Text;
    myCommand.Parameters["@Re"].Value =((TextBox)e.Item.FindControl("Re1")).Text;如果我把name列修改了的话,这个SQl语句就没有作用了,关键是这个SQl语句怎么写呀??
    我没有设主键.
      

  2.   

    笨笨,其实二楼说的已经告诉你方法了,你可以这样,在DataGrid 上建一个伪列,也就是英文中的Dummy Column,这个列为普通BoundColumn,将name指定为此列的DataField,也指定为
    DataKey,这样你的SQL也就不用改了,对了,为了美观起见,可以将此列的Visible属性改为false
      

  3.   

    谢谢了 wwuzhenyu()指引!!!我实现了.