如何将更新后的Gridview推送到数据库
本文关键字:数据库 Gridview 更新 | 更新日期: 2023-09-27 18:29:47
我正在尝试用C#制作一个windows窗体应用程序。我试图删除Gridview中的一个特定行,并将更改推送到数据库中。此删除操作将删除该行。我想做的就是把这个更新的网格视图推送到数据库中。
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
string ind = e.RowIndex.ToString();
int myint = int.Parse(ind);
dataGridView1.Rows.Remove(dataGridView1.Rows[myint]);
}
这是我用来显示数据库的代码。
using (SqlConnection MyConn = new SqlConnection("Data Source=LENOVO''SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=SampleData"))
{
string query = "SELECT * from dbo. userpass";
SqlCommand cmd = new SqlCommand(query, MyConn);
try
{
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataTable dbdataset = new DataTable();
sda.Fill(dbdataset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dbdataset;
dataGridView1.DataSource = bSource;
sda.Update(dbdataset);
}
catch
{
}
}
获取用于在函数中填充数据网格的代码,然后调用该函数,并在调用该函数之前刷新网格。
dataGridView1.Rows.Refresh();
如果你在商业上这样做,我建议你购买一个真正的WinForms框架,如SyncFusion/Telerik/DevExpress等。他们中的大多数人都应该有一套工具,可以将他们的一个WinForm网格直接绑定到数据库表,并让所有CRUD操作直接与底层表交互。
另一种选择是使用带有Entity Framework DataSource控件的Entity Framework,该控件然后绑定到网格,CRUD操作应该再次流到数据库,(但是我建议您将WPF控件与这种方法一起使用)。
在一天结束的时候,不要重新发明轮子。
您使用的是BindingSource,因此它只是的一种情况
bSource.RemoveCurrent();
同时使用ExecuteNonQuery方法将其从数据库中删除:
.CommandText = "DELETE FROM YourTable WHERE Identifier =" & PrimaryKey
使用DELETE SQL查询删除行的数据,并通过再次调用数据库连接方法刷新网格,您将获得更新的代码