0

나는 요소가 sqlserver 테이블 (그룹)에서로드 된 ComboBox를 보유하고 있습니다. 다른 테이블 (사용자)에 연결된 DataGridView도 있습니다. Combobox 및 DataGridView로 마스터/디테일 만들기

내가 양식을로드

이 콤보가 그룹으로 가득하고, DataGridView에이 사용자로 가득 (모든 사용자)

1) 나는 (콤보 상자에서 그룹을 선택할 수 있도록하려면 dropDownList)를 선택한 다음 선택한 그룹에 속한 사용자로 DataGridView를 새로 고칩니다.

2) 그리고 DataGridView에서 조인 관계를 표시하려면 어떻게합니까?

나는 그것의 해당 tableAdapters 내 VS2008 프로젝트에 생성 된 XSD 데이터 세트가 를 생성 한 :

는 PS ...의 내가 각 사용자의 마지막 열에서 그룹 명 표시 할 가정 해 봅시다 (groupTableAdapter, userTableAdapter) 두 테이블 BindingSource에 대한 설정 각 어댑터

+0

갱신 1

(나는 서둘러 때문에 네, MSDN에이 게시) : 나는 더 많은 연구 및 필터 옵션을 발견 ... (선택 = int.Parse (myCombo.SelectedValue.ToString를 int로)); userBindingSource1.Filter = "groupId ="+ selected; – Enrique

+0

Update2 : 필터가 정상적으로 작동하지만 DataGridView에서 사용자가 해당 그룹 ID를 추가하고 싶습니다. 콤보 및 필터 유지 ... 단서가 필요합니까? – Enrique

답변

3

1)에 첨가 일부 SQL-방법.

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

2) 콤보 및 그리드 데이터 소스를 설정하십시오. 콤보에 대한의 SelectedIndexChanged 이벤트 설정

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

3)과 bsUser의 BindingSource에에 필터를 변경하는 데 사용합니다.

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; 
} 

이 작업은 ... here에서 가져 왔습니다.

+0

MSDN 링크는 http://social.msdn.microsoft.com/Forums/windows/en-US/3fba63f0-f027-48e9-b9a5-4738c620a5fb/c-master-detail-using-combobox-and-datagridview-with입니다. 테이블 –