数码资讯
普通法的SQLServer合并DataTable和消除重复的数据共享
代码如下: 复制代码代码如下所示: X 两列X DataTable,进入一个新的数据表 X 更改源表 只需要合并表 只需要行重(空列表不行重) 公众合并后的最大表数 结合 / / / DataTable 公共静态DataTable MergeDataTable(表1,DataTable DT2,字符
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
代码如下:
复制代码代码如下所示:
X
两列X DataTable,进入一个新的数据表
X
更改源表
只需要合并表
只需要行重(空列表不行重)
公众合并后的最大表数
结合 / / / DataTable
公共静态DataTable MergeDataTable(表1,DataTable DT2,字符串主键,int maxRows)
{
确定是否合并
如果(DT1 = = null DT2 = = null)
{
返回null;
}
如果(DT1 = = null DT2!= null)
{
返回DT2复制();
}
如果(1!= = =空)空DT2
{
返回1份();
}
/ / 1的数据副本
DataTable dt=1。复制();
对DT2结构(1 / /不列)DT
为(int i = 0;i < dt2.columns.count;i++)
{
字符串的CNAME = DT2。列{我},ColumnName;
如果(!dt.columns.contains(CNAME))
{
Dt.Columns.Add(新列(CNAME));
}
}
/ / DT2的数据副本
如果(dt2.rows.count > 0)
{
T型= DT2。行{ 0 } { } GetType(主键);
布尔isneedfilter = string.isnullorempty(主键):真的假的;
Bool isNeedQuotes = t.Name = = String true: false;
国际mergetablenum = dt.rows.count;
为(int i = 0;i < dt2.rows.count mergetablenum < maxRows;i++)
{
布尔isneedadd =真;
如果需要输入行权重,则确定是否需要添加当前行。
如果(isneedfilter)
{
字符串的首要价值一样= DT2。行{我} { } ToString(主键);
字符串过滤=主键+=+首要价值一样;
如果(isneedquotes)
{
过滤=主键+=+ + 首要价值一样;
}
DataRow { } DRS = dt的选择(过滤);
如果(DRS)!= null博士长> 0)
{
isneedadd = false;
}
}
添加数据
如果(isneedadd)
{
DataRow Dr = dt.newrow();
为(j = 0;J < dt.columns.count;j++)
{
字符串的CNAME = DT。列{ } ColumnName J;
如果(dt2.columns.contains(CNAME))
{
在不同类型的赋值错误中防止相同的字段
如果(DT2。行{我} { CNAME }!= null DT2。行{我} { CNAME }!= DBNull。价值DT2。行{我} { } ToString(CNAME))!=)
{
DR { } = DT2 CNAME。行{我} { CNAME };
}
}
}
Dt.Rows.Add(博士);
mergetablenum + +;
}
}
}
返回DT;
}
复制代码代码如下所示:
X
两列X DataTable,进入一个新的数据表
X
更改源表
只需要合并表
只需要行重(空列表不行重)
公众合并后的最大表数
结合 / / / DataTable
公共静态DataTable MergeDataTable(表1,DataTable DT2,字符串主键,int maxRows)
{
确定是否合并
如果(DT1 = = null DT2 = = null)
{
返回null;
}
如果(DT1 = = null DT2!= null)
{
返回DT2复制();
}
如果(1!= = =空)空DT2
{
返回1份();
}
/ / 1的数据副本
DataTable dt=1。复制();
对DT2结构(1 / /不列)DT
为(int i = 0;i < dt2.columns.count;i++)
{
字符串的CNAME = DT2。列{我},ColumnName;
如果(!dt.columns.contains(CNAME))
{
Dt.Columns.Add(新列(CNAME));
}
}
/ / DT2的数据副本
如果(dt2.rows.count > 0)
{
T型= DT2。行{ 0 } { } GetType(主键);
布尔isneedfilter = string.isnullorempty(主键):真的假的;
Bool isNeedQuotes = t.Name = = String true: false;
国际mergetablenum = dt.rows.count;
为(int i = 0;i < dt2.rows.count mergetablenum < maxRows;i++)
{
布尔isneedadd =真;
如果需要输入行权重,则确定是否需要添加当前行。
如果(isneedfilter)
{
字符串的首要价值一样= DT2。行{我} { } ToString(主键);
字符串过滤=主键+=+首要价值一样;
如果(isneedquotes)
{
过滤=主键+=+ + 首要价值一样;
}
DataRow { } DRS = dt的选择(过滤);
如果(DRS)!= null博士长> 0)
{
isneedadd = false;
}
}
添加数据
如果(isneedadd)
{
DataRow Dr = dt.newrow();
为(j = 0;J < dt.columns.count;j++)
{
字符串的CNAME = DT。列{ } ColumnName J;
如果(dt2.columns.contains(CNAME))
{
在不同类型的赋值错误中防止相同的字段
如果(DT2。行{我} { CNAME }!= null DT2。行{我} { CNAME }!= DBNull。价值DT2。行{我} { } ToString(CNAME))!=)
{
DR { } = DT2 CNAME。行{我} { CNAME };
}
}
}
Dt.Rows.Add(博士);
mergetablenum + +;
}
}
}
返回DT;
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。