private void Form1_Load(object sender, EventArgs e) { //给你模拟两个吧 //第一个DT 其中有两列,A B DataTable dt1 = new DataTable(); dt1.Columns.Add("A"); dt1.Columns.Add("B"); for (int i = 0; i < 10; i++) { DataRow row = dt1.NewRow(); row["A"] = i.ToString(); row["B"] = (i * 10).ToString(); dt1.Rows.Add(row); } //第二个DT 其中有两列 A C DataTable dt2 = new DataTable(); dt2.Columns.Add("A"); dt2.Columns.Add("C"); for (int i = 0; i < 10; i++) { DataRow row = dt2.NewRow(); row["A"] = i.ToString(); row["C"] = (i * 10).ToString(); dt2.Rows.Add(row); } //开始合并,共有字段为A,就显示它! DataTable dt3 = new DataTable(); dt3.Columns.Add("A"); //把第一个DT加进DT3里 for (int i = 0; i < dt1.Rows.Count; i++) { DataRow row = dt3.NewRow(); row["A"] = dt1.Rows[i]["A"]; dt3.Rows.Add(row); } //把第二个也加进去 for (int i = 0; i < dt2.Rows.Count; i++) { DataRow row = dt3.NewRow(); row["A"] = dt2.Rows[i]["A"]; dt3.Rows.Add(row); } //把合并后的DT绑定给GRIDVIEW,我用winform写的所以是datagridview this.dataGridView1.DataSource = dt3.DefaultView; //webform的话你再加上gridview.Databind() //行了,写得够详细了,你应该会了吧 }
之前他们说的在数据库里union的方式更方便T1id name deptid c1 c2 T2c4 id c5 deptid name按你说的数据库表结构也就是这样 select id name deptid c1 c2 from T1 union select id name deptid c4 c5 from T2这样不就可以了,你控制查出来的字段位置呀,有三个一样,那么你查的时候就按同样的位置select呀
这个好些,例子:表1: 01 Zhang, Hua 02 Wang, Wei 03 Carter, Thomas 04 Yang, Ming 表2: 01 Adams, John 02 Bush, George 03 Carter, Thomas 04 Gates, Bill sql语句: SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA结果: E_Name Zhang, Hua Wang, Wei Carter, Thomas Yang, Ming Adams, John Bush, George Gates, Bill
LZ 说的 不会是嵌套gridview吧??
http://topic.csdn.net/u/20070509/12/ea2a2ef9-02a8-4356-a571-57914ef089ec.html
DataTable的行列你都可以控制吧?那不就是你想怎么操作就怎么操作吗
private void Form1_Load(object sender, EventArgs e)
{
//给你模拟两个吧
//第一个DT 其中有两列,A B
DataTable dt1 = new DataTable();
dt1.Columns.Add("A");
dt1.Columns.Add("B"); for (int i = 0; i < 10; i++)
{
DataRow row = dt1.NewRow();
row["A"] = i.ToString();
row["B"] = (i * 10).ToString();
dt1.Rows.Add(row);
} //第二个DT 其中有两列 A C DataTable dt2 = new DataTable();
dt2.Columns.Add("A");
dt2.Columns.Add("C"); for (int i = 0; i < 10; i++)
{
DataRow row = dt2.NewRow();
row["A"] = i.ToString();
row["C"] = (i * 10).ToString();
dt2.Rows.Add(row);
}
//开始合并,共有字段为A,就显示它! DataTable dt3 = new DataTable();
dt3.Columns.Add("A"); //把第一个DT加进DT3里
for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow row = dt3.NewRow();
row["A"] = dt1.Rows[i]["A"];
dt3.Rows.Add(row);
} //把第二个也加进去
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow row = dt3.NewRow();
row["A"] = dt2.Rows[i]["A"];
dt3.Rows.Add(row);
}
//把合并后的DT绑定给GRIDVIEW,我用winform写的所以是datagridview this.dataGridView1.DataSource = dt3.DefaultView; //webform的话你再加上gridview.Databind() //行了,写得够详细了,你应该会了吧 }
T2c4 id c5 deptid name按你说的数据库表结构也就是这样
select id name deptid c1 c2 from T1 union select id name deptid c4 c5 from T2这样不就可以了,你控制查出来的字段位置呀,有三个一样,那么你查的时候就按同样的位置select呀
这个好些,例子:表1:
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming 表2:
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill sql语句:
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA结果:
E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill