如何使多个数据库的表格合并成一张表并显示在一个gridview中.doc
文本预览下载声明
如何使多个数据库的表格合并成一张表并显示在一个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 = 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, typeof(string), Parent(ForName).Name);
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = ds;
dataGridView1.DataMember = AddressDt;
}
DataSet多表关联实现本地数据复杂的查询
[c-sharp] view plaincopy 1. DataSet ds = new DataSet();
2.
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], ds.Tables[0].Columns[FNodeID]);
19.
20.
21. //查询条件测试1:对父表查询获取子表测试
22. //条件为 ss_Action.FID 等
于 6E7BB6B5-4DDA-4BB9
显示全部