TableAdapter.Update没有';不总是将更改写回数据库
本文关键字:数据库 写回 没有 Update TableAdapter | 更新日期: 2023-09-27 18:25:36
我在使用一个最新的小工具时遇到了一个奇怪的问题。
我有一个SQLite数据库,里面有一个表(Journal)。我正在通过一个运行良好的DataGrid编辑数据。但是,有时由于不明确的原因,并且没有任何例外,它只是不将更改或新行写回数据库。你可以猜到这很烦人。这是我的代码:
private JournalTableAdapter adapter = new JournalTableAdapter();
private DataSetAccounting dataset = new DataSetAccounting();
public MainWindow()
{
InitializeComponent();
adapter.Connection = new SQLiteConnection("Data Source=Database/accounting.s3db");
adapter.Fill(dataset.Journal);
dataset.Journal.JournalRowChanged
+= new DataSetAccounting.JournalRowChangeEventHandler(Journal_JournalRowModified);
dataset.Journal.JournalRowDeleted
+= new DataSetAccounting.JournalRowChangeEventHandler(Journal_JournalRowModified);
dataset.Journal.TableNewRow
+= new System.Data.DataTableNewRowEventHandler(Journal_TableNewRow);
dataGridAccounting.DataContext = dataset.Journal.DefaultView;
}
void Journal_JournalRowModified(object sender, DataSetAccounting.JournalRowChangeEvent e)
{
e.Row.EndEdit();
adapter.Update(dataset.Journal);
}
void Journal_TableNewRow(object sender, System.Data.DataTableNewRowEventArgs e)
{
e.Row[2] = DateTime.Now.Date;
}
我觉得很简单,但没有像我预期的那样工作=/我不经常使用ADO.NET/SQL-Adapters,所以请仁慈:)
真诚的你,Nefarius
哦,对不起,我很笨。我使用了visualstudio自动生成的数据集版本,它比较了WHERE部分中的每个参数,所以ofc。他在数据库中找不到原始行。在VS中运行时,我可以重现错误并得到一个异常。无论如何,我将继续阅读我的C#/ADO.NET书籍=)