我有两个表,一个是主表包含(id,Date,TestID,Result) 而orther是一个查找表(TestID,TestName)
我想在datagridview中显示这样的数据:
Id,日期,测试1,测试2,测试3,结果。
并且能够保存它,这可能吗?以及如何开始
答案 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
连接两个序列参考文献: