2

1 つの DataGridView フォームと 1 つの DataTable を含むコードまたはプロジェクトの例が必要なので、DataGridView セルを編集すると、すべての変更が自動的に DataTable にコミットされます。また、手動で DataGridView と同じ列を持つ DataTable を作成するにはどうすればよいですか?

同じ列を持つ DataGridView と DataTable を手動で作成し、DataGridView.DataSource = DataTable を設定しようとしましたが、テーブルに保存されたデータは nullです (とにかく、新しい行の数は正しいですが、値は無効です)。

それをグーグルで検索しようとしました-すべてのサンプルと質問はDataBaseへの保存に関するものですが、DBは必要ありません.単純なDataTableとDataGridViewバインディングが必要です.

ありがとう!

4

4 に答える 4

4

DataGridView列から自動的にテーブルを作成する方法はありません( EDITこれを改良するには: データベース構造を自動的に作成する方法があります - ここでは ORM が良いキーワードになります - しかし、それはあなたが必要とするものではないと思います)。逆の方法でもうまくいきます。テーブルを作成し、それをDataGridViewデータ ソースとして に割り当てます。次に、グリッドにそれぞれの列が表示されます。

データ テーブルに値を「保存」することは、列に関連する基になるテーブルのフィールドを「伝えた」場合にのみ機能します。つまり、テーブルの列を作成する必要があり (名前があります)、列を作成するときに、列のプロパティにDataGridView列名を割り当てる必要があります。DataPropertyName

最も簡単な方法: 型指定されたデータセットを作成し ([プロジェクトに追加] ダイアログを使用して新しい「DataSet」を追加します)、データセットのデザイナーでテーブルを手動で作成し、データセットのインスタンスをフォームにドラッグして、これをデータ ソースをDataGridView. それ以外はすべて自動的に表示されます。

于 2012-05-09T11:42:50.793 に答える
1

codeproject からのこのリンクが役立つことを願っています。

http://www.codeproject.com/Questions/80935/save-datagrid-data-to-database

http://www.codeproject.com/Articles/12846/Auto-Saving-DataGridView-Rows-to-a-SQL-Server-Data

于 2012-05-09T11:43:45.437 に答える
1

DataTable が dataGridView の DataSource として設定されている場合、dataGridView の内容は DataTable のデータを反映し、その逆も同様です。したがって、dataGridView に変更を加えた場合、それらの変更は既に DataTable に含まれています。

于 2013-01-10T16:07:18.160 に答える
0

DatagridViewに変換しDataTableます。
C#.NET の場合:

DataTable dt = ((DataView)this.dataGridView1.DataSource).Table;

VB.NET:

Dim dt As DataTable = CType(Me.dataGridView1.DataSource,DataView).Table
于 2012-08-19T06:26:00.747 に答える