【问题标题】:filter dataset based on the selected values in ComboBox根据 ComboBox 中的选定值过滤数据集
【发布时间】:2012-10-23 19:47:33
【问题描述】:

在我的应用程序中,我尝试使用DataSetRowFilterSelect 方法来显示用户在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的三个不同列怎么做?

我知道我的代码做错了什么。请建议我应该怎么做才能更正我的代码。请不要使用 linq,因为它受到我的主要成员的限制。但欢迎所有类型的答案。

【问题讨论】:

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


    【解决方案1】:

    您可以尝试在过滤操作之后将默认视图分配给数据源

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

    【讨论】:

    • 感谢您的回复。我知道这一点,但如何检查多个列。
    • RowFilter 接受表达式,如 here 所述。您可以像 SQL Where 子句一样合并您的条件。所以你可以写'condition1 AND condition2 AND condition3'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 2021-03-08
    • 2019-01-17
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    相关资源
    最近更新 更多