Winform开发之DataGridView的删除操作,并更新到数据库
时间: 2024-02-23 16:59:21 浏览: 316
DataGridView的删除操作可以分为两个步骤:从DataGridView中删除数据行和从数据库中删除对应的记录。下面介绍如何在删除DataGridView中的数据行的同时,将对应的记录从数据库中删除,并更新DataGridView显示的数据。
1. 删除DataGridView中的数据行
在DataGridView中删除数据行的方式有很多种,这里介绍其中一种常用的方式,即通过选中需要删除的行,然后点击“删除”按钮或者按下“Delete”键来删除数据行。
```csharp
private void buttonDelete_Click(object sender, EventArgs e)
{
// 获取选中的行
DataGridViewSelectedRowCollection selectedRows = dataGridView1.SelectedRows;
// 遍历选中的行并删除
foreach (DataGridViewRow row in selectedRows)
{
dataGridView1.Rows.Remove(row);
}
}
```
上述代码中,我们通过SelectedRows属性获取选中的行,然后通过Remove()方法删除选中的行。
2. 从数据库中删除对应的记录
在删除DataGridView中的数据行后,我们需要从数据库中删除对应的记录。具体的实现方式与数据库的类型和使用的数据访问技术有关。这里以SQL Server数据库和ADO.NET数据访问技术为例。
```csharp
private void buttonDelete_Click(object sender, EventArgs e)
{
// 获取选中的行
DataGridViewSelectedRowCollection selectedRows = dataGridView1.SelectedRows;
// 遍历选中的行并删除
foreach (DataGridViewRow row in selectedRows)
{
// 获取要删除的记录的ID值
string id = row.Cells["ID"].Value.ToString();
// 删除数据库中对应的记录
string sql = "DELETE FROM Table1 WHERE ID = @ID";
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
cmd.ExecuteNonQuery();
}
}
// 从DataGridView中删除选中的行
dataGridView1.Rows.Remove(row);
}
}
```
上述代码中,我们首先获取选中的行,然后遍历选中的行并删除。在删除每一行数据之前,我们需要获取要删除的记录的ID值,然后使用SQL语句从数据库中删除对应的记录。最后,我们从DataGridView中删除选中的行。
3. 更新DataGridView显示的数据
在从数据库中删除记录后,我们需要更新DataGridView显示的数据,以保证数据的一致性。具体的实现方式也与数据库的类型和使用的数据访问技术有关。这里以SQL Server数据库和ADO.NET数据访问技术为例。
```csharp
private void buttonDelete_Click(object sender, EventArgs e)
{
// 获取选中的行
DataGridViewSelectedRowCollection selectedRows = dataGridView1.SelectedRows;
// 遍历选中的行并删除
foreach (DataGridViewRow row in selectedRows)
{
// 获取要删除的记录的ID值
string id = row.Cells["ID"].Value.ToString();
// 删除数据库中对应的记录
string sql = "DELETE FROM Table1 WHERE ID = @ID";
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@ID", id);
conn.Open();
cmd.ExecuteNonQuery();
}
}
// 从DataGridView中删除选中的行
dataGridView1.Rows.Remove(row);
}
// 重新绑定DataGridView显示的数据
string sql2 = "SELECT * FROM Table1";
using (SqlDataAdapter adapter = new SqlDataAdapter(sql2, connStr))
{
DataTable dt = new DataTable();
adapter.Fill(dt);
dataGridView1.DataSource = dt;
}
}
```
上述代码中,我们在从数据库中删除记录后,重新从数据库中获取最新的数据,并将其绑定到DataGridView中,以更新DataGridView显示的数据。
阅读全文