0

我有三个数据网格视图(部门、员工、EmployeeNotInDepartment)。我已经根据 DataRelations 填充了 Department 和 Employee 数据网格视图(见下文)。我认为必须有一种明显简单的方法来填充 EmployeeNotInDepartment 数据网格视图。有任何想法吗?我希望我不必使用 linq。

public Form1()
{
        InitializeComponent();

        dtDepartment = FillDepartmentList();
        dtEmployee = FillEmployeeList();
        dsDepartmentEmployees = new DataSet();

        // Add tables to dataset
        dsDepartmentEmployees.Tables.Add(dtDepartment);
        dsDepartmentEmployees.Tables.Add(dtEmployee);

        // Create table relationship
        dsDepartmentEmployees.Relations.Add("DepartEmpRelation", dtDepartment.Columns["DepartmentNumber"], dtEmployee.Columns["DepartmentNumber"],true);

        BindingSource bsDepartment = new BindingSource();
        bsDepartment.DataSource = dsDepartmentEmployees;
        bsDepartment.DataMember = "table1";

        BindingSource bsEmployee = new BindingSource();
        bsEmployee.DataSource = bsDepartment;
        bsEmployee.DataMember = "DepartEmpRelation";

        dataGridView1.DataSource = bsDepartment;
        dataGridView2.DataSource = bsEmployee;

}
4

2 回答 2

0

如果您坚持不使用 LINQ,那么您可以DataView在属性中使用并指定您的过滤器RowFilter(它可能是您不想显示的逗号分隔的 Id 列表)

这是如何RowFilter一个DataView

于 2013-07-12T17:11:49.030 回答
0

正如@Rwiti 所建议的那样,您可以使用 DataView 的 RowFilter 属性,您可以定义适当的表达式来根据该表达式过滤掉行。

查看下面的链接,其中列出了 RowFilter 的各种示例,包括NOT IN

http://www.csharp-examples.net/dataview-rowfilter/

但是,如果您没有任何理由不使用 Linq(即必须使用 .net 2.0),那么就去做吧。

于 2013-07-12T17:18:51.590 回答