高手们:
    用dataset绑定datagrid,输出一个表格,5行5列的。其中有一列是“编号”,自动对应数据表中的ID,现在用什么方法可以读出某个行的编号,我的问题是:datagrid中有一个“删除”按钮,linkbuton属性,点一下这个按钮就删除对应的这一行记录,我的datagrid作了分页,为什么我在点“下一页”时, 老出错?提示,输入符串错??
其实主要功能就是:点一下删除按钮在删除该条记录的同时,又要保证分页正常,我现在点一下,下一页就提示,id输入字符串出错.---部分代码如下:------
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{//取得所选的记录行,就是取得“删除”按钮触发时的记录值,得到焦点,以下这句意思是取得ID值.第一单元格值string  id2=e.Item.Cells[0].Text;
int id=Convert.ToInt32(id2);//连接数据库并打开
string MyConnString2 = "Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source="+Server.MapPath("../workdata/#workdata.aspx");
OleDbConnection Conn2 = new OleDbConnection(MyConnString2); 
Conn2.Open();
            
//执行sql操作
string strSel2 = "DELETE FROM Company_favorite where ID="+id;
OleDbCommand myCmd1=new OleDbCommand (strSel2,Conn2);
myCmd1.ExecuteNonQuery();
            
//关闭数据
Conn2.Close ();Response.Write ("<script>alert('删除成功!');location.href='Favorite.aspx';</script>");}

解决方案 »

  1.   

    string MyConnString2 = "Provider=Microsoft.Jet.OLEDB.4.0;"+"Data Source=c:/dir/access.mdb;"
      

  2.   

    private void BindGrid()
    {
    DataSet EmployeeInfo = (new Employee()).GetEmployees();
    EmployeeGrid.DataSource = EmployeeInfo;
    EmployeeGrid.DataKeyField = "EmployeeID";//数据源中的键字段
    EmployeeGrid.DataBind();
    } private void EmployeeGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    int employeeId = Convert.ToInt32(EmployeeGrid.DataKeys[e.Item.ItemIndex]);
    DeleteEmployee(employeeId);//删除指定员工信息的方法略
    BindGrid();
    }
      

  3.   

    删除一条数据以后,需要对DataGrid重新绑定一下数据//关闭数据
    Conn2.Close ();//在你的函数这里给你的DataGrid重取一次数据重新绑定可能就没问题啦Response.Write ("<script>alert('删除成功!');location.href='Favorite.aspx';</script>");
      

  4.   

    就是加上象DataSet EmployeeInfo = (new Employee()).GetEmployees();
    EmployeeGrid.DataSource = EmployeeInfo;
    EmployeeGrid.DataKeyField = "EmployeeID";//数据源中的键字段
    EmployeeGrid.DataBind();这样的语句