想删除一行记录,怎么得到这一行在数据库中的主键值?数据库主键使用UniqueIdentifier型。

解决方案 »

  1.   

    把datagrid的DataKeyField设为数据库的主键字段,然后可以用一下方式取得字段的值:
    字段值=datagrid.DataKeys(e.Item.ItemIndex)
      

  2.   

    前台:<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 64px; POSITION: absolute; TOP: 176px"
    runat="server" Width="344px" Height="264px" AutoGenerateColumns="False" DataKeyField="dept_id">后台:
    private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string deletecmd="delete from 部门表 where dept_id=@dept_id";
    SqlConnection myConnection =new SqlConnection(ConfigurationSettings.AppSettings["sqlconn"] ) ;
    SqlCommand myCommand=new SqlCommand(deletecmd,myConnection);
    myCommand.Parameters.Add(new SqlParameter("@dept_id",SqlDbType.VarChar ,50));
    myCommand.Parameters["@dept_id"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
    myConnection.Open();
    myCommand.ExecuteNonQuery(); 
                MyDataBind();  
    }
      

  3.   

    我是这样用的:
    你将该主键字段也绑定到表格中,比如所是第0列
    如果你不想显示它,可以在属性生成器里设定”可见“为false
    strTemp = this.GridList.Items[intIndex].Cells[0].Text;
    intKey = Convert.ToInt32(strTemp);
      

  4.   

    关键是:DataKeyField="dept_id"与DataGrid1.DataKeys[e.Item.ItemIndex];
      

  5.   

    设置了啊,不过现在提示对象必须实现 IConvertible。
    错误: 
    行 85:  myCommand.Parameters["@NEWS_ID"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
    行 86:  connection.Open();
    行 87:  myCommand.ExecuteNonQuery();
    行 88:  myCommand.Connection.Close();
    行 89: 
     源文件: e:\temp\webapplication4\webform1.aspx.cs    行: 87