0

我有一個ComboBox,其元素從sqlserver表(組)中加載。 我也有一個DataGridView,鏈接到另一個表(用戶)。使用Combobox和DataGridView創建大師/詳細信息

當我加載的形式中,組合填充有基團,和在DataGridView填充有用戶(所有用戶)

1)我希望能夠從ComboBox選擇一組( dropDownList),然後用屬於該選定組的用戶刷新DataGridView ...

2)以及如何在DataGridView中顯示連接關係?比方說,我要顯示在每個用戶的最後一列的組名...

PS:

我在VS2008的項目,其 相應的TableAdapter創建一個xsd數據集生成 (groupTableAdapter,userTableAdapter) ,並添加到每個 適配器

+0

UPDATE1:我研究多了,發現過濾選項...詮釋選擇= int.Parse(myCombo.SelectedValue.ToString( )); userBindingSource1.Filter =「groupId =」+ selected; – Enrique 2009-12-03 13:41:44

+0

Update2:雖然過濾器工作正常,我想添加dataGridView中的用戶,他們相應的選擇groupId - 從組合,並保持過濾也......任何線索? – Enrique 2009-12-03 13:42:49

回答

3

1)建立的BindingSource兩個表某些SQL的方法。

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

2)設置Combo和Grid DataSources。

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

3)建立SelectedIndexChanged事件的組合,並用它來改變在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

(是的,我張貼這也是在MSDN上,因爲我很着急)

+0

MSDN鏈接是http://social.msdn.microsoft.com/Forums/windows/en-US/3fba63f0-f027-48e9-b9a5-4738c620a5fb/c-master-detail-using-combobox-and-datagridview-with -tableadapters – 2013-09-07 02:04:56