2012-11-03 115 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

是的非常感谢你解决了我的问题 –