Получить первичный ключ из GridView через флажок для запроса SQL - PullRequest
0 голосов
/ 17 ноября 2011

Я слежу за учебником от здесь .

Но я застрял в той части, где мне нужно выполнить поиск первичного ключа проверенных строк.

Ниже мой текущий код:

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, чтобы я мог вставить ее в свой оператор DELETE.

Ниже приведен мой пример GridView и ошибка, с которой я сейчас сталкиваюсь.


enter image description here

enter image description here

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Установите точку останова на этой строке и посмотрите на значение GridView1.DataKeys. Могу поспорить, что в этом массиве нет ключей, поэтому DataKeys [0] сгенерирует это исключение.

0 голосов
/ 17 ноября 2011

Попробуйте это

int employeeID= Convert.Toint32(GridView1.Rows[row.RowIndex].Cells["Employee"].Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...