Datagridview有两个数据源

时间:2015-05-18 13:51:17

标签: c# winforms datagridview

我有两个表,一个是主表包含(id,Date,TestID,Result) 而orther是一个查找表(TestID,TestName)

我想在datagridview中显示这样的数据:

Id,日期,测试1,测试2,测试3,结果。

并且能够保存它,这可能吗?以及如何开始

2 个答案:

答案 0 :(得分:2)

也许您可以将每个数据源的数据合并到一个数据集中,然后将该数据集指定为数据视图的来源。但是,如果没有进一步的信息,很难推测可能的解决方案。

然而..

您可以使用两个SqlDataAdapter将结果集合并到一个DataTable中,以分别从两个数据库填充DataTable。这是一个例子。

    DataTable dt = new DataTable();
    using(SqlDataAdapter a1 = new SqlDataAdapter("SELECT * FROM [user1]", "Data Source=DBServer1;Initial Catalog=Database1;User ID=user;Password=***"))
    a1.Fill(dt);

    using(SqlDataAdapter a2 = new SqlDataAdapter("SELECT * FROM [user2]", "Data Source=DBServer2;Initial Catalog=Database2;User ID=user;Password=***"))
    a2.Fill(dt);

***上面只是举例说明它不是100%正确的方法,从连接到数据库开始,但它是你开始思考的东西****

a1.Fill(dt)将初始化DataTable并填充它。 a2.Fill(dt)只是从另一个结果集向DataTable dt添加行。此示例假定两个数据源具有相同的架构。如果没有,则必须准备数据表以容纳两个结果集。

希望这有帮助。

答案 1 :(得分:1)

当然,第二个表的第一个表的记录之间的关系需要共享列。例如,表具有ID列,并且它在表1和表2之间共享,因此最好的方法是在两个DataTable上的JOIN表或在.NET上由DataTable.Merge Method合并。 另一种方法是,按Enumerable.Concat Method

连接两个序列

参考文献:

How to: Concatenate Two Sequences (LINQ to SQL)

DataTable.Merge Method (DataTable)