主頁 > 知識庫 > sqlserver合并DataTable并排除重復數(shù)據(jù)的通用方法分享

sqlserver合并DataTable并排除重復數(shù)據(jù)的通用方法分享

熱門標簽:成都電話外呼系統(tǒng)一般多少錢 蘭州語音外呼系統(tǒng)運營商 陜西電銷外呼系統(tǒng)好用嗎 沒聽見電話機器人幫你接 如何做地圖標注圖鋪 銀川高頻外呼回撥系統(tǒng)多少錢 al智能電話機器人 最新人工智能電銷機器人 數(shù)字匠心電銷機器人
代碼如下:
復制代碼 代碼如下:

///summary>
/// 將兩個列不同的DataTable合并成一個新的DataTable
////summary>
///param name="dt1">源表/param>
///param name="dt2">需要合并的表/param>
///param name="primaryKey">需要排重列表(為空不排重)/param>
///param name="maxRows">合并后Table的最大行數(shù)/param>
///returns>合并后的datatable/returns>
public static DataTable MergeDataTable(DataTable dt1, DataTable dt2, string primaryKey, int maxRows)
{
//判斷是否需要合并
if (dt1 == null dt2 == null)
{
return null;
}
if (dt1 == null dt2 != null)
{
return dt2.Copy();
}
else if (dt1 != null dt2 == null)
{
return dt1.Copy();
}
//復制dt1的數(shù)據(jù)
DataTable dt = dt1.Copy();
//補充dt2的結(jié)構(gòu)(dt1中沒有的列)到dt中
for (int i = 0; i dt2.Columns.Count; i++)
{
string cName = dt2.Columns[i].ColumnName;
if (!dt.Columns.Contains(cName))
{
dt.Columns.Add(new DataColumn(cName));
}
}
//復制dt2的數(shù)據(jù)
if (dt2.Rows.Count > 0)
{
Type t = dt2.Rows[0][primaryKey].GetType();
bool isNeedFilter = string.IsNullOrEmpty(primaryKey) ? false : true;
bool isNeedQuotes = t.Name == "String" ? true : false;
int mergeTableNum = dt.Rows.Count;
for (int i = 0; i dt2.Rows.Count mergeTableNum maxRows; i++)
{
bool isNeedAdd = true;
//如果需要排重時,判斷是否需要添加當前行
if (isNeedFilter)
{
string primaryValue = dt2.Rows[i][primaryKey].ToString();
string fileter = primaryKey + "=" + primaryValue;
if(isNeedQuotes)
{
fileter = primaryKey + "='" + primaryValue + "'";
}
DataRow[] drs = dt.Select(fileter);
if (drs != null drs.Length > 0)
{
isNeedAdd = false;
}
}
//添加數(shù)據(jù)
if (isNeedAdd)
{
DataRow dr = dt.NewRow();
for (int j = 0; j dt.Columns.Count; j++)
{
string cName = dt.Columns[j].ColumnName;
if (dt2.Columns.Contains(cName))
{
//防止因同一字段不同類型賦值出錯
if (dt2.Rows[i][cName] != null dt2.Rows[i][cName] != DBNull.Value dt2.Rows[i][cName].ToString() != "")
{
dr[cName] = dt2.Rows[i][cName];
}
}
}
dt.Rows.Add(dr);
mergeTableNum++;
}
}
}
return dt;
}
您可能感興趣的文章:
  • SQL Server數(shù)據(jù)庫刪除數(shù)據(jù)集中重復數(shù)據(jù)實例講解
  • Sql Server使用cursor處理重復數(shù)據(jù)過程詳解
  • sqlserver清除完全重復的數(shù)據(jù)只保留重復數(shù)據(jù)中的第一條
  • SQL Server中刪除重復數(shù)據(jù)的幾個方法
  • sqlserver中重復數(shù)據(jù)值只取一條的sql語句
  • 教你幾種在SQLServer中刪除重復數(shù)據(jù)方法
  • MSSql簡單查詢出數(shù)據(jù)表中所有重復數(shù)據(jù)的方法

標簽:邢臺 鹽城 朔州 遼源 巴彥淖爾 宜春 通化 本溪

巨人網(wǎng)絡(luò)通訊聲明:本文標題《sqlserver合并DataTable并排除重復數(shù)據(jù)的通用方法分享》,本文關(guān)鍵詞  sqlserver,合并,DataTable,并,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《sqlserver合并DataTable并排除重復數(shù)據(jù)的通用方法分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于sqlserver合并DataTable并排除重復數(shù)據(jù)的通用方法分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章