C# 通过SQL查询复选框从GridView检索主键

C# 通过SQL查询复选框从GridView检索主键,c#,sql,C#,Sql,我正在学习一个来自的教程 但是我在需要grep检查行的主键的部分被卡住了 以下是我目前的代码: protected void DeleteChecked_Click(object sender, EventArgs e) { bool atLeastOneRowDeleted = false; foreach (GridViewRow row in GridView1.Rows) { CheckBox cb = (CheckBox)row.FindCo

我正在学习一个来自的教程

但是我在需要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和我现在遇到的错误



在该行上设置断点并查看GridView1.DataKeys的值。我打赌该数组中没有键,因此DataKeys[0]将引发该异常。

试试这个

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

请不要在标题前加上“C#SQL Visual Studio”之类的字头。这就是我们在上使用标记的原因。另外,您的问题是关于.NET的,而不是关于Visual Studio的。如果在记事本中编写代码,您也会遇到同样的问题。