通过Checkbox for SQL查询从GridView检索主键

时间:2011-11-17 07:58:26

标签: c# sql

我正在关注here的教程。

但是我在需要grep被检查行的主键的部分被卡住了。

以下是我目前的代码:

protected void DeleteChecked_Click(object sender, EventArgs e)
{
    bool atLeastOneRowDeleted = false;

    foreach (GridViewRow row in GridView1.Rows)
    {

        CheckBox cb = (CheckBox)row.FindControl("UserSelector");
        if (cb != null && cb.Checked)
        {

            atLeastOneRowDeleted = true;

            int employeeID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);

            SqlDataSource1.SelectCommand = "DELETE FROM [UserDB] where Employee like " +employeeID;
            SqlDataSource1.DataBind();
        }
    }
}

我不知道应该改变什么,以及如何在GridView上grep我的'Employee'变量,以便我可以将它插入到DELETE语句中。

下面是我的示例GridView以及我现在遇到的错误。


enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

在该行上设置断点并查看GridView1.DataKeys的值。我打赌那个数组中没有键,所以DataKeys [0]会抛出异常。

答案 1 :(得分:0)

试试这个

int employeeID= Convert.Toint32(GridView1.Rows[row.RowIndex].Cells["Employee"].Value);