1

コンボボックス 1 とコンボボックス 2 というフォーム (form1) に 2 つのコンボボックスがあります。

各コンボボックスには、SQL Server 2005 の 2 つの異なるテーブル (table1 と table2) に格納されたデータを入力する必要があります。

つまり: コンボボックス1 --> テーブル1 コンボボックス2 --> テーブル2

データ テーブルに適切なデータを入力し、コンボボックスを個別にバインドします。

私の問題は、2 つのコンボを埋めた後、両方とも table2 から取得したデータが等しいことです。

これは私のコードです:

        DataTable tb1 = new DataTable();

        //Filling tb1 with data got from table1
        combobox1.Items.Clear();
        combobox1.DataSource = tb1;
        combobox1.DisplayMember = "Name";
        combobox1.ValueMember = "ID";
        combobox1.SelectedIndex = -1;

        //filling tb1 with data got from table2
        combobox2.Items.Clear();
        combobox2.DataSource = tb1;
        combobox2.DisplayMember = "Name";
        combobox2.ValueMember = "ID";
        combobox2.SelectedIndex = -1;

どうしたの?

2 つの異なるデータ テーブル (tb1 と tb2) を取得すれば、すべて問題ないようです。

任意の提案をお願いします。

ありがとうございました

4

2 に答える 2

2

DataTableは参照型です。つまり、tb1 をコントロールの DataSource に割り当てると、実際にはメモリ内の参照/リンクをDataSource. したがって、tb1 変数を変更すると、参照自体が変更されます。参照のみを変更しているため、DataSourceは同じように見えますがDataTable、データのセットが異なるだけです。

于 2010-05-16T11:03:05.530 に答える
1

DataTable() に2 つの個別の を作成DataViewし、各コンボボックスを DataView にバインドします。

DataView クラスを参照してください

于 2010-05-16T11:02:54.797 に答える