根据ComboBox中的选定值过滤数据集

时间:2012-11-03 08:10:05

标签: c# .net winforms c#-4.0 dataset

在我的应用程序中,我尝试使用RowFilter的{​​{1}}或Select方法来显示用户在DataSet中选择的值。 ComboBox有五列,因此我的项目有五个DataSet分别填充了相同的ComboBoxes列值。现在我尝试在DataSet中搜索用户选择的值并填充DataGridView。我尝试过以下方法:( 不工作

DataSet

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 + "'"; 列进行搜索,如何做到这一点?

enter image description here

我知道我在代码中做错了什么。请建议我该怎么做才能纠正我的代码。请不要linq,因为它受到我的主管成员的限制。但欢迎所有类型的anwswers。

1 个答案:

答案 0 :(得分:3)

您可以尝试在过滤操作之后将defaultview分配给数据源

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