如何将更新后的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
            {
            }
        }

如何将更新后的Gridview推送到数据库

获取用于在函数中填充数据网格的代码,然后调用该函数,并在调用该函数之前刷新网格。

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查询删除行的数据,并通过再次调用数据库连接方法刷新网格,您将获得更新的代码