gpt4 book ai didi

sqlserver合并DataTable并排除重复数据的通用方法分享

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章sqlserver合并DataTable并排除重复数据的通用方法分享由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下:  。

复制代码代码如下

///<summary>  /// 将两个列不同的DataTable合并成一个新的DataTable  ///</summary>  ///<param name="dt1">源表</param>  ///<param name="dt2">需要合并的表</param>  ///<param name="primaryKey">需要排重列表(为空不排重)</param>  ///<param name="maxRows">合并后Table的最大行数</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的数据  DataTable dt = dt1.Copy();  //补充dt2的结构(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的数据  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;  }  }  //添加数据  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;  }  。

最后此篇关于sqlserver合并DataTable并排除重复数据的通用方法分享的文章就讲到这里了,如果你想了解更多关于sqlserver合并DataTable并排除重复数据的通用方法分享的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com