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

TableAdapter.Update没有';不总是将更改写回数据库

哦,对不起,我很笨。我使用了visualstudio自动生成的数据集版本,它比较了WHERE部分中的每个参数,所以ofc。他在数据库中找不到原始行。在VS中运行时,我可以重现错误并得到一个异常。无论如何,我将继续阅读我的C#/ADO.NET书籍=)