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

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

熱門標(biāo)簽:成都電話外呼系統(tǒng)一般多少錢 蘭州語(yǔ)音外呼系統(tǒng)運(yùn)營(yíng)商 陜西電銷外呼系統(tǒng)好用嗎 沒(méi)聽(tīng)見(jiàn)電話機(jī)器人幫你接 如何做地圖標(biāo)注圖鋪 銀川高頻外呼回?fù)芟到y(tǒng)多少錢 al智能電話機(jī)器人 最新人工智能電銷機(jī)器人 數(shù)字匠心電銷機(jī)器人
代碼如下:
復(fù)制代碼 代碼如下:

///summary>
/// 將兩個(gè)列不同的DataTable合并成一個(gè)新的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();
}
//復(fù)制dt1的數(shù)據(jù)
DataTable dt = dt1.Copy();
//補(bǔ)充dt2的結(jié)構(gòu)(dt1中沒(méi)有的列)到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));
}
}
//復(fù)制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;
//如果需要排重時(shí),判斷是否需要添加當(dāng)前行
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))
{
//防止因同一字段不同類型賦值出錯(cuò)
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ù)庫(kù)刪除數(shù)據(jù)集中重復(fù)數(shù)據(jù)實(shí)例講解
  • Sql Server使用cursor處理重復(fù)數(shù)據(jù)過(guò)程詳解
  • sqlserver清除完全重復(fù)的數(shù)據(jù)只保留重復(fù)數(shù)據(jù)中的第一條
  • SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
  • sqlserver中重復(fù)數(shù)據(jù)值只取一條的sql語(yǔ)句
  • 教你幾種在SQLServer中刪除重復(fù)數(shù)據(jù)方法
  • MSSql簡(jiǎn)單查詢出數(shù)據(jù)表中所有重復(fù)數(shù)據(jù)的方法

標(biāo)簽:邢臺(tái) 鹽城 朔州 遼源 巴彥淖爾 宜春 通化 本溪

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

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章