日期:2014-05-17  浏览次数:20874 次

连接多个数据库进行查询,并将结果在DataGridView中显示出来
需求:需要连接多个数据库,每次查询的列都是一样的,然后将结果在DataGridView中一次性显示出来,

我最初的想法是:
  DataTable为一个成员变量;

  使用OracleDataAdapter,填充DataSet;  //第一步
  再将DataSet的所有行添加到DataTable中;  //第二步
  ......第查询一个数据库,重复一次第二步

  DataGridView.DataSource = DataTable; //第三步

问题:
  第二步如何实现呢?好像一般都是反过来的,即将DataTable的所有行添加DataSet,我使用以下代码,是不行的:  
    m_DataTable.Rows.Add(OracleDB.Instance.CurrentDataSet.Tables[tableName].Rows);
  

------解决方案--------------------
第一,你可以将多个数据组合成一个datatable,然后绑定给grid
第二,不绑定数据,循环每次得到的数据,动态添加到grid上,Rows.Add,然后对每个单元格赋值
------解决方案--------------------
两个数据库返回两个List<T>,再通过linq关联查询出一个新的list.ToList(),gridView.datasource=list;
------解决方案--------------------
 再将DataSet的所有行添加到DataTable中;  //第二步

第二步你理解错了吧。。。。

DataTable dt=DataSet.Table["Name"] 就行了