0

sqlserverテーブル(グループ)から要素がロードされたComboBoxがあります。別のテーブル(ユーザー)にリンクされたDataGridViewもあります。

フォームをロードすると、コンボはグループで埋められ、datagridviewはユーザー(すべてのユーザー)で埋められます。

1) ComboBox(dropDownList)からグループを選択し、その選択したグループに属するユーザーでDataGridViewを更新できるようにしたい...

2)そして、DataGridViewで結合関係を表示するにはどうすればよいですか?各ユーザーの最後の列にgroupNameを表示したいとします...

PS:

VS2008プロジェクトで作成されたxsdデータセットがあり、対応するtableAdaptersが生成され(groupTableAdapter、userTableAdapter)、各アダプターにいくつかのsqlメソッドが追加されています

4

1 に答える 1

3

1)両方のテーブルにBindingSourceを設定します。

BindingSource bsGroup = new BindingSource();
BindingSource bsUser  = new BindingSource();
bsGroup.DataSource = MyDataSet.Tables["Group"];
bsUser.DataSource = MyDataSet.Tables["User"];

2)コンボおよびグリッドデータソースを設定します。

MyCombo.DataSource    = bsGroup;
MyCombo.DisplayMember = "GroupName"; // whatever your ColumnName is
MyCombo.ValueMember   = "GroupID";
MyGrid.DataSource = bsUser;

3)ComboのSelectedIndexChangedイベントを設定し、それを使用してbsUserバインディングソースのフィルターを変更します。

MyCombo.SelectedIndexChanged += new System.EventHandler(MyCombo_SelectedIndexChanged);
private void MyCombo_SelectedIndexChanged(object sender, System.EventArgs e)
{
    // this will depend on what your column names are, obviously
    string filter = string.Format("GroupID = {0}", MyCombo.SelectedValue);
    bsUser.Filter = filter;
}

これはうまくいきました...ここから取られました。

(はい、急いでいたので、MSDNにも投稿しました)

于 2009-12-04T19:03:38.913 に答える