Как удалить как из базы данных, так и из datagridview

#c# #sql

#c# #sql

Вопрос:

Итак, я искал в Google ответ на этот вопрос, нашел так много разных ответов, но я не совсем понимаю их и на самом деле не вижу способа их реализации, даже если я много пробовал, поэтому моя проблема в основном в том, что моя кнопка удаления удаляет только из datagridview, а не из самой базы данных. Насколько мне известно, у меня есть gridview, связанный с gridview, но это самое первое приложение form, которое я создаю, поэтому я немного озадачен тем, что я делаю

     private void buttonDel_Click(object sender, EventArgs e)
    {///////////////////////////////////////////////////////issue is here
        foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
        {
            dataGridView1.Rows.RemoveAt(item.Index);
        }
        //string del = "DELETE FROM Data WHERE RowID = @RowID";
    }
        using (SqlConnection Connection = new SqlConnection(Connectionstring))
        {
            string query = "insert into data(Navn, NummerPlade, KMKørt, dato)";
            query  = " values (@Navn, @NummerPlade, @KMKørt, @dato)";
            Connection.Open();
            SqlCommand cmd = new SqlCommand(query, Connection);
            cmd.Parameters.AddWithValue("@Navn", textBox1.Text);
            cmd.Parameters.AddWithValue("@NummerPlade", textBox8.Text);
            cmd.Parameters.AddWithValue("@KMKørt", textBox6.Text);
            cmd.Parameters.AddWithValue("@dato", textBox7.Text);
            cmd.ExecuteNonQuery();
            Connection.Close();
            button4_Click(sender, e);
        }
    private void button4_Click(object sender, EventArgs e)
    {
        /// Connect / Update


        using (SqlConnection Connection = new SqlConnection(Connectionstring))
        {

            Connection.Open();
            SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM  Data", Connection);
            DataTable data = new DataTable();
            sqlDa.Fill(data);
            dataGridView1.DataSource = data;
        }
        buttonConn.Hide();
    }
  

Комментарии:

1. «моя проблема в основном в том, что моя кнопка удаления удаляет только из datagridview» … у вас нет никакого кода, который запускал бы SQL DELETE. У вас есть одна строка, закомментированная, относящаяся к ней, но ничего для фактического выполнения этого SQL. Судя по (случайно вставленному, поэтому он не будет компилироваться) using блоку чуть ниже, вы знаете, как выполнить SQL statement…so что мешает вам сделать это с помощью DELETE вместо этого? Неясно, что вы пытались — если вообще пытались — или в чем проблема на самом деле.

2. Ознакомьтесь с методом обновления DataAdapter.

3. DGV не перерисовывается после обновления. Хитрость заключается в том, чтобы установить для него значение null: dataGridView1.DataSource = null; dataGridView1.DataSource = data;

4. @ADyson мои извинения за то, что я не объяснил это правильно, я хочу, чтобы моя кнопка удаляла выбранную строку, но понятия не имею, как найти выбранную строку (выбранную щелчком по ней курсором мыши), моя последняя попытка удалить ее строка del = «УДАЛИТЬ ИЗ данных, ГДЕ RowID = @RowID»; Соединение. Открыть(); SqlCommand cmd = новая SqlCommand(del, Подключение); cmd.Параметры. AddWithValue(«@RowID», TextBox1.Text); cmd. ExecuteNonQuery(); Подключение. Закрыть ();

5. Предположительно, где-то в вашей строке есть поле, содержащее идентификатор? Вам нужно прочитать это поле из выбранной строки. Вы можете использовать item.Index , чтобы найти строку, а затем получить значение поля ID из нее.