Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据组合框中的选定值筛选数据集_C#_.net_Winforms_C# 4.0_Dataset - Fatal编程技术网

C# 根据组合框中的选定值筛选数据集

C# 根据组合框中的选定值筛选数据集,c#,.net,winforms,c#-4.0,dataset,C#,.net,Winforms,C# 4.0,Dataset,在我的应用程序中,我试图使用RowFilter或Select方法DataSet在组合框中显示用户选择的值。数据集有五列,因此我的项目有五个组合框,分别填充了数据集的相同列值。现在我尝试在数据集中搜索用户选择的值,并在DataGridView中填充。我试过以下方法:(不起作用) dgvMain.DataSource = null; dgvMain.DataSource = dsMainDoctors.Tables[0].DefaultView.RowFilter = "Name = '" + cm

在我的应用程序中,我试图使用
RowFilter
Select
方法
DataSet
组合框中显示用户选择的值。
数据集
有五列,因此我的项目有五个组合框
,分别填充了
数据集
的相同列值。现在我尝试在数据集中搜索用户选择的值,并在DataGridView中填充。我试过以下方法:(不起作用)

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

dgvMain.DataSource = null;
dgvMain.DataSource = dsMainDoctors.Tables[0].DefaultView.RowFilter = "Name = '" + cmbDoctorName.Text + "'";
第一次尝试不显示任何内容,但第二次尝试显示类似下图的内容,而不是显示列。在这里,我试图只使用一列值进行搜索,但我需要使用
DataSet
的三个不同列进行搜索,如何做到这一点

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

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

我知道我的代码有问题。请建议我应该如何更正我的代码。请不要使用linq,因为它受到我的主管成员的限制。但是所有类型的Anwswer都是受欢迎的。

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

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

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

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

谢谢你的回复。我知道这一点,但是如何检查多个列。RowFilter接受一个表达式,如前所述。您可以像SQLWHERE子句一样合并您的条件。所以你可以写“条件1、条件2和条件3”,谢谢你的回复。我知道这一点,但是如何检查多个列。RowFilter接受一个表达式,如前所述。您可以像SQLWHERE子句一样合并您的条件。所以你可以写“条件1、条件2和条件3”