如何在数据库表中插入和更新datagrid行

时间:2013-11-28 07:23:23

标签: c# winforms datagrid advanceddatagrid

我正在开发C#而不使用任何framework.until现在我成功地在Datagrid上执行了以下任务。

1.Displaying data in Data-grid by binding with database table
2.Getting the selected row data from Data-grid based on primary key

这是我的变量声明:

SQLiteDataAdapter adap;
SQLiteCommandBuilder cmdbl;
DataSet ds;
String Query;
DataTable dt;

以下是在数据网格中显示数据的代码:

try
{
    Query = "Select * from Items";
    adap = new SQLiteDataAdapter(Query, GlobalVars.conn);
    ds = new DataSet();
    adap.Fill(ds, "Items");
    dt = ds.Tables[0];
    dtgitems.DataContext = ds.Tables[0].DefaultView;
    dtgitems.ItemsSource = dt.DefaultView;
    ds.Dispose();
    adap.Dispose();
    dt.Dispose();
}
catch (Exception ex)
{
    MessageBox.Show(ex.ToString());
}

工作正常 这是我更新数据网格的代码

try
 {
     cmdbl = new SQLiteCommandBuilder(adap);
     adap.Update(ds, "Items");
    // ds.Tables[0].Clear();
 }
 catch (Exception ex)
 {

 }

它无法正常工作。有谁知道如何在数据网格中完成此更新功能? 。请帮我修改这段代码以便更新操作。谢谢

1 个答案:

答案 0 :(得分:0)

虽然我会使用ObservableCollection,但您可以使用以下代码更新数据网格项:

dtgItems.Items.Refresh();

更新源后执行此操作。 我应该在你的代码中使用它,如下所示: 您应该接受更改,以便更新数据库。

try
{
    cmdbl = new SQLiteCommandBuilder(adap);
    adap.Update(ds, "Items");
    ds.Tables[0].AcceptChanges();
    dtgItems.Items.Refresh();
}
catch (Exception ex)
{

}