#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 из нее.