2012-11-03 134 views
0

在我的應用程序中,我嘗試使用RowFilterSelect方法DataSet顯示用戶在ComboBox中選擇的值。 DataSet有五列,因此我的項目有五個ComboBoxes分別填充相同的值列DataSet。現在我試圖在DataSet中搜索用戶選定的值並填充到DataGridView中。我曾嘗試如下:(不工作根據組合框中的選定值篩選數據集

dgvMain.DataSource = null; 
dgvMain.DataSource = dsMainDoctors.Tables[0].Select("Name = '" + cmbDoctorName.Text +"'"); 

dgvMain.DataSource = null; 
dgvMain.DataSource = dsMainDoctors.Tables[0].DefaultView.RowFilter = "Name = '" + cmbDoctorName.Text + "'"; 

第一次嘗試沒有顯示是顯示像下面的圖片什麼,但第二個,而不是展示列。在這裏,我正在嘗試僅使用一個列值進行搜索,但我需要使用三個不同的列搜索DataSet如何執行此操作?

enter image description here

我知道我做錯了什麼在我的代碼。請建議我應該怎樣做才能糾正我的代碼。請不要linq,因爲它受到我的頭部成員的限制。但歡迎所有類型的水道。

回答

3

您可以嘗試分配默認視圖,過濾動作之後,到數據源

dgvMain.DataSource = null; 
dsMainDoctors.Tables[0].DefaultView.RowFilter = "Name = '" + cmbDoctorName.Text + "'"; 
dgvMain.DataSource = dsMainDoctors.Tables[0].DefaultView; 
+0

感謝您的答覆。我知道這一點,但如何檢查多個列。 –

+0

RowFilter接受一個Expression,如[這裏]所述(http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx)。您可以合併您的條件,如SQL Where子句。所以你可以寫'條件1 AND條件2 AND條件3' – Steve

+0

是的非常感謝你解決了我的問題 –