1

だから私はSQL Server CEのこの素晴らしいガイドに従っています: http://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx

ASP.NET ではなく WinForms 用。ローカル データベース ソースにバインドdatagridviewし、ダミー情報を正常に表示できます。

問題は、テーブルに書き戻そうとしたり、既存のセルの内容を変更しようとしたりするときです。変更を保存できません。テーブルに書き戻すにはどうすればよいですか? like の後にイベントは必要CellEndEditですか? 別のサイトでこれを行う良い例はありますか?

フォーム ロード イベントには、ロードするdatagridviewためにこれが含まれているだけなので、本当に「バインド」されているかどうかはわかりません。

this.productsTableAdapter.Fill(this.testDBDataSet2.Products);
4

3 に答える 3

1

同様の問題に対処したばかりで、いくつかのことを学びました。まず、DataGridView に加えた変更は、セルが検証されるまでデータベースにコミットされません。データ バインドされた DataGridView では、セルは行レベルで検証され、編集中の行からフォーカスを移動するまで、CellChangeEvent を使用して行を強制的に検証しない限り、変更はコミットされません。次のようになります。

    if (e.ColumnIndex > 9 && e.RowIndex >= 0)
    {
        if (dataGridView.Rows[e.RowIndex].Cells[0].Value is DBNull)
        {
            //do nothing
        }
        else
        {
            this.Validate();
        }
    }

基になるデータベースに加えた変更を dataGridView に表示させようとしている場合は、上記で説明したように、テーブル アダプターを更新する必要があります。ただし、変更をコミットする前に Fill を実行すると、変更が失われます。

于 2012-09-03T20:37:16.517 に答える
0

This generally happens when you work with development environment. As you are working with SQLCE, you may have created db file in your project. Visual studio will also makes a copy of your db in bin folder. Now what so ever database transactions you make will effect this local database copy which reside in bin folder. So try to attach that bin database with SQL Management studio or visual studio. This will defiantly show your recently inserted data.

于 2012-07-19T05:09:13.000 に答える
0

ここにいます: productsTableAdapter.Update(testDBDataSet2);

于 2012-07-19T01:26:53.113 に答える