1

データグリッドビューをデータセットにバインドするのは初めてです。私はデータセットを作成し、(私が思うに) SQL Server DB のテーブルで埋めました。しかし、datagridview を入力しようとすると、Column1、Column2 などの列見出しを持つ空白の 7 列のテーブルしか表示されません。誰が何が悪いのか分かりますか?

  • 言及する価値があります: SQL Server のテーブルは空白ではありません。

  • この投稿のように、initializeComponent を追加しても解決しませDataGridView Rows Empty when set to DataSet

編集 私のデータセットがいっぱいになっていないようです。Dataset1.tables(0) には行がありません。GUI からは、AverageWeeklyLabsTableAdapter と呼ばれるものがあるように見えます (下の写真を参照)。データセットは、オブジェクトにデータが自動的に入力される LINQ to SQL のように機能すると思いましたが、データセットを入力するためにコードを呼び出す必要があるのではないでしょうか?

オンロードイベント...

    Dim myBindingSource As BindingSource = New BindingSource
    myBindingSource.DataSource = DataSet1.Tables(0) //has no rows
    DataGridView1.DataSource = myBindingSource
    DataGridView1.ReadOnly = True

データセット

ここに画像の説明を入力

4

1 に答える 1

1

にデータをロードするときはdatagridview、を使用BindingSourceしますが、限られたコードからは、それを実行しているようには見えません。

したがって、次のようDataSetに、テーブルデータを入力してから、データをロードBindingSourceします(コードは簡潔にするために短縮されています)。

dataAdapter.Fill(table); 
bindingSource1.DataSource = table;
datagridview1.DataSource = bindingSource1;

編集に基づいて、実際にデータを入力しているようには見えません。データベースからデータを取得するには、テーブルアダプタからの塗りつぶしを使用する必要があります。また、.netは、(データセットに基づく)データテーブルの特定のオブジェクトタイプを予期します。次のようなものです。

var adapter = new AverageWeeklyLabsTableAdapter();
var dataTable = new myForm.DataSet1.AverageWeeklyLabsDataTable
adapter.Fill(dataTable);
bindingSource1.DataSource = dataTable;
datagridview1.DataSource = bindingSource1;

tableadaptersに関するSOに関する別の質問があります。

C#テーブルアダプターは実際に何を返しますか?

于 2012-04-19T16:52:58.140 に答える