2012-02-24 5 views
0

私の最新の小さなツールで奇妙な問題にぶつかりました。TableAdapter.Updateは常にデータベースに変更を書き込むとは限りません

私は1つのテーブル(ジャーナル)内に1つのSQLiteデータベースを持っています。私はうまく動作する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で多くを動作しませんので、慈悲深いしてください:)

よろしくお願いいたします。 ネファリウス

答えて

0

ミー、申し訳ありません、私は馬鹿です。ビジュアルスタジオの自動生成バージョンのデータセットを使用して、WHERE部分のすべてのパラメータを比較しました。彼はDBの元の行を見つけることができません。 VSで実行している間、私はエラーを再現することができ、例外が発生しました。気にしない、私はC#/ ADO.NETの本を読むつもりです=)

関連する問題