您的位置:首页 > 其它

合并查询数据结果

2009-01-23 14:23 309 查看
1. 查询数据库具有相同列结构的结果时,可以用union合并多条查询语句进行查询,可直接得出相应datatable

2. 查询数据库具有不同列的结果需要合并时,可以采用合并datatable的方法

//合并2个DT
DataTable dt3 = dt1.Clone(); //创建新表从第一个表复制结构,clone没有行数据,只有列结构

for( int i = 0 ;i < dt2.Columns.Count ;i ++ )
{

//使新表同时具备两个表的列数总和
dt3.Columns.Add( dt2.Columns[i].ColumnName ) ;
}

//复制表一的数据到新表,使新表具有和表一一样的行数
object[] obj = new object[dt3.Columns.Count];
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt1.Rows[i].ItemArray.CopyTo(obj,0);
dt3.Rows.Add(obj);
}

//表二行数据少,直接复制数据到新表

if( dt1.Rows.Count >= dt2.Rows.Count )
{
for( int i = 0 ;i < dt2.Rows.Count ;i++ )
{
for( int j = 0 ;j < dt2.Columns.Count ;j ++ )
{
dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
}
}
}

//表二行数据多,添加差的行数,再复制数据到新表

else
{
DataRow dr3 ;
for( int i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )
{
dr3 = dt3.NewRow() ;
dt3.Rows.Add( dr3 ) ;
}
for( int i = 0 ;i < dt2.Rows.Count ;i++ )
{
for( int j = 0 ;j < dt2.Columns.Count ;j ++ )
{
dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐