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

时间:2013-08-31 10:07:55

标签: c# gridview windows-forms-designer

我正在尝试在C#中创建一个Windows窗体应用程序。我试图删除Gridview中的特定行并将更改推送到数据库中。此删除会删除该行。我想要做的就是将这个更新的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
            {

            }

        }

4 个答案:

答案 0 :(得分:1)

获取您正在使用的代码来填充函数中的datagrid并调用该函数并在调用函数之前刷新网格。

dataGridView1.Rows.Refresh();

答案 1 :(得分:0)

如果您在商业上这样做,我建议您选择实际的WinForms框架,如SyncFusion / Telerik / DevExpress等。他们中的大多数都应该有一套工具来直接将其WinForm网格绑定到数据库表,并让所有CRUD操作直接与基础表交互。

另一种选择是使用实体框架,实体框架数据源控件,然后绑定到网格,CRUD操作应该再次流到数据库,(但我建议你使用这种方法使用WPF控件)。

在一天结束时,不要重新发明轮子。

答案 2 :(得分:0)

您正在使用BindingSource,所以它只是一个案例:

bSource.RemoveCurrent(); 

同时使用ExecuteNonQuery方法从数据库中删除它:

.CommandText = "DELETE FROM YourTable WHERE Identifier =" & PrimaryKey

答案 3 :(得分:0)

使用DELETE SQL查询删除行的数据并通过再次调用数据库连接方法刷新网格,您将获得更新的代码