我正在开发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)
{
}
它无法正常工作。有谁知道如何在数据网格中完成此更新功能? 。请帮我修改这段代码以便更新操作。谢谢
答案 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)
{
}