Кнопка Удалить работает слишком медленно в чем проблема
я использую этот код для удаления записей, которые выбраны флажком в datagridview, но это займет слишком много времени, чтобы выполнить команду
private void delete_Click(object sender, EventArgs e) { foreach(DataGridViewRow item in advancedDataGridView1.Rows) { if(bool.Parse(item.Cells[0].Value.ToString())) { conn.Open(); SqlCommand cmd = new SqlCommand("delete from tabl where id = '" + item.Cells[1].Value.ToString() + "'", conn); cmd.ExecuteNonQuery(); conn.Close(); } } MessageBox.Show("Successfully Deleted...."); }
и я использую этот код для галочки
private void Chkselectall_CheckedChanged(object sender, EventArgs e) { for(int n = 0; n< advancedDataGridView1.Rows.Count;n++) { advancedDataGridView1.Rows[n].Cells[0].Value = chkselectall.Checked; } }
Что я уже пробовал:
что я должен сделать, чтобы решить эту проблему
новое обновление
sql = "delete from tabl where id in ("; parameterCounter = 0; using (SqlConnection cn = new SqlConnection("Data Source=SQL5035.site4now.net;Initial Catalog=DB_A448D1_ilgswork;User Id=**********;Password=**********")) { using (SqlCommand cmd = new SqlCommand(sql, cn)) { foreach (DataGridViewRow item in advancedDataGridView1.Rows) { if (bool.Parse(item.Cells[0].Value.ToString())) { parameterCounter++; parameter = new SqlParameter(); parameter.ParameterName = "@par" + parameterCounter.ToString(); parameter.DbType = System.Data.DbType.Int32; parameter.Value = item.Cells[1].Value; cmd.Parameters.Add(parameter); sql = sql + $"{parameter.ParameterName},"; // collecting all ids } } sql = sql.TrimEnd(','); sql = sql + ")"; cmd.CommandText = sql; cmd.Connection = cn; cn.Open(); cmd.ExecuteNonQuery(); }
Maciej Los
Похоже, вы не хотите слушать наши советы по поводу SQL-инъекций...
Основываясь на этом фрагменте кода, никто не может сказать причину медленного выполнения кода.
el_tot93
моя проблема в том, что я новичок в кодировании
Karthik_Mahalingam
является ли идентификатор целым числом ?
el_tot93
да
Karthik_Mahalingam
это решено?
el_tot93
вы хотите помочь или хотите получить ответ
Karthik_Mahalingam
если ошибка все еще сохраняется, Я помогу Вам ее исправить.
el_tot93
блокировка моего обновления
el_tot93
это и есть способ писать
Karthik_Mahalingam
да