在创建报表查看器报表时查找另一个数据表中的值

时间:2011-08-09 17:41:40

标签: c# .net datatable reporting reportviewer

我有一个我在我的应用程序中创建的本地报告。它在我的访问数据库中显示名为“History”的表的内容。其中一列是“ID”,它指的是另一个表“Employees”中的主键。

我的报告会在刷新时显示员工的ID,但我当然希望它显示员工的姓名。

简而言之,我需要能够在我的rldc文件中的另一个表上执行查找。我怎么能这样做呢?

2 个答案:

答案 0 :(得分:1)

以下是如何使用SQL加入员工和历史记录表的示例。我的Access是生锈的,因此语法可能不完美,但这应该证明这个概念。显然,我编写了列名,因此您必须将列更改为您需要的任何内容。

SELECT EmployeeID,
       EmployeeName,
       TimeIn,
       TimeOut
FROM   Employee Emp
       INNER JOIN History History
          ON Emp.EmployeeID = History.EmployeeID

答案 1 :(得分:1)

我假设您通过数据适配器和类型化数据集从数据库中获取数据。这样的事情?

        TestDataSetTableAdapters.CategoryTableAdapter ca = new TestDataSetTableAdapters.CategoryTableAdapter();
        this.ds1 = new TestDataSet();
        ca.Fill(this.ds1.Category);

然后转到数据集并将tableadapter中的查询修改为类似

的内容

从历史记录h中选择h。*,e.EmployeeName 内部联接员工e在e.ID = h.UserID

然后将修改datset以在History表的所有行中包含EmployeeName列。然后在您的yyour报告中直接提供“employeename”栏目