如何使多个数据库的表格合并成一张表并显示在一个gridview中 下载本文

如何使多个数据库的表格合并成一张表并显示在一

个gridview中

篇一:DataSet多表关联实现本地数据复杂的查询 如果要显示两张数据库表的记录,最简单的方法是检索时将两张表中你要的数据一次检索出来,放入同一个DataTable来显示。

如果要显示两个以上DataTable中的数据,则需要将DataTable放入DataSet并建立relation就可以显示了。 下面是刚做的一个例子。另外,父表一定要有主键。建立关联时要用主键。 private

void

button1_Click(object

sender,

System.EventArgs e) {

DataTable dtName = new DataTable(NameDt); dtName.Columns.Add(ID, typeof(string)); dtName.Columns.Add(Name, typeof(string)); dtName.PrimaryKey

=

1

new DataColumn[]

{dtName.Columns[ID] }; dtName.Rows.Add(1, Name1); DataTable dtAddress = new DataTable(AddressDt); dtAddress.Columns.Add(ID, typeof(string)); dtAddress.Columns.Add(Address, typeof(string)); dtAddress.Rows.Add(1, Address1); dtAddress.Rows.Add(1, Address2); DataSet ds = new DataSet(); ds.Tables.Add(dtName); ds.Tables.Add(dtAddress); // 关键!建立表之间的关联

ds.Relations.Add(ForName, dtName.Columns[ID], dtAddress.Columns[ID]);

// 在子表中添加计算列,引用父表的数据。 dtAddress.Columns.Add(Name, Parent(ForName).Name);

dataGridView1.AutoGenerateColumns = false; dataGridView1.DataSource = ds;

dataGridView1.DataMember = AddressDt; }

DataSet多表关联实现本地数据复杂的查询

[c-sharp] view plaincopy 1. DataSet ds = new DataSet(); 2.

2

typeof(string),

3. //提取第一个表 放在ds中 4.

dp.CommandText

=

SELECT

*

FROM

ss_RolesInAction; 5.

ds.Tables.Add(dp.ExecuteDataTable(ss_RolesInAction));6. 7. //提取第二个表 放在ds中

8. dp.CommandText = SELECT * FROM ss_Action; 9. ds.Tables.Add(dp.ExecuteDataTable(ss_Action)); 10.

11. //提取第三个表 放在ds中

12. dp.CommandText = SELECT * FROM as_SiteMap; 13. ds.Tables.Add(dp.ExecuteDataTable(as_SiteMap)); 14. 15.

//

ss_Action.FID

=

ss_RolesInAction.FActionID ,ss_RolesInAction.FActionID为外键

16. ds.Relations.Add(relation1, ds.Tables[1].Columns[FID], ds.Tables[0].Columns[FActionID]); 17.

//

as_SiteMap.ID

=

ss_RolesInAction.FNodeID , ss_RolesInAction.FNodeID 为外键

18. ds.Relations.Add(relation2, ds.Tables[2].Columns[ID],

3