У меня есть GridView с флажком в нем, и я пытаюсь сделать мультипликатор удалить, используя этот код:Как удалить несколько строк в gridview с помощью флажка?
protected void deleteUsers(object sender, EventArgs e) //deleting the selected users
{
foreach (GridViewRow row in clientGrid.Rows)
{
CheckBox selectBox = (CheckBox)row.FindControl("deleteUser");
if (selectBox != null && selectBox.Checked)
{
string bank, customerId, tMain, tSub;
bank = bankName.InnerText;
tMain = bank + "_main";
tSub = bank + "_sub";
customerId = Convert.ToString(clientGrid.DataKeys[row.RowIndex].Value);
deleteSelected(tMain, tSub, customerId).ExecuteNonQuery();
clientGrid.DataSource = getAllClients();
clientGrid.DataBind();
}
}
}
и вот SQLCommand:
protected SqlCommand deleteSelected (string Tmain, string Tsub, string customerId) //the sql command for deleting
{
string connection, commandSyntax;
connection = ConfigurationManager.ConnectionStrings["localsqlserver"].ConnectionString;
commandSyntax = "DELETE FROM [" + Tmain + "] FROM [" + Tsub + "] t1 " +
"LEFT JOIN [" + Tmain + "] t2 ON t1.customer_id = t2.customer_id " +
"WHERE t1.customer_id = @customer_id" ;
SqlConnection conn = new SqlConnection(connection);
SqlCommand cmd = new SqlCommand(commandSyntax, conn);
cmd.Parameters.AddWithValue("@customer_id", customerId);
conn.Open();
return cmd;
}
это прекрасно работает на удаление только один пользователь проверил, но если я проверить больше, чем тот, который я получаю эту ошибку:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Я установил gridview datakey в столбец customer_id, который содержит guid.
Я использую asp.net 4.0, в чем проблема?
Большое спасибо. – Wahtever