合併查詢數據結果

 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()   ;  
  }  
  }  
  }

發佈了25 篇原創文章 · 獲贊 1 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章