两个datatble,合成筛选成另一个新的datatable

第一种方式是用循环去匹配,可能效率比较慢

//for (int i = 0; i < Nic.Rows.Count; i++)
//{
// for (int j = 0; j < dt.Rows.Count; j++)
// {

//表一的ProductCode 不等于表二的ProductCode就跳出循环
// if (Nic.Rows[i]["ProductCode"].ToString().Trim() != dt.Rows[j]["ProductCode"].ToString().Trim())
// {
// n++;
// if (n == m)
// {
// DataRow row = enddt.NewRow();
// row.ItemArray = Nic.Rows[i].ItemArray;
// enddt.Rows.Add(row);
// n = 0;
// }
// }
// else
// {
// n = 0;
// break;
// }
// }
//}

第二种方式是使用 datatable里自带的select查询来做

for (int i = 0; i < Nic.Rows.Count; i++)
{
DataRow[] rows = dt.Select("ProductCode=‘"+Nic.Rows[i]["ProductCode"].ToString()+"‘");
if (rows.Count()==0)
{
DataRow rows1 = enddt.NewRow();
rows1.ItemArray = Nic.Rows[i].ItemArray;
enddt.Rows.Add(rows1);
}
else
{
continue;
}
}

时间: 2024-11-02 20:45:50

两个datatble,合成筛选成另一个新的datatable的相关文章

将DataTable中的某一行复制到另一个新的DataTable(转)

===前提:我们已经有一个DataTable的数据表 现在需要的只是其中的一行数据=== 比如说下面这段代码在一个方法里 返回的就是一个DataTable! sqlCon = new SqlConnection(strCon);             sqlCom = new SqlCommand();             sqlCom.Connection = sqlCon;             sqlCom.CommandText = "select_v";       

java 数据结构 图中使用的一些常用算法 图的存储结构 邻接矩阵:图的邻接矩阵存储方式是用两个数组来标示图。一个一位数组存储图顶点的信息,一个二维数组(称为邻接矩阵)存储图中边或者弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 实例如下,左图是一个无向图。右图是邻接矩阵表示:

以下内容主要来自大话数据结构之中,部分内容参考互联网中其他前辈的博客. 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通过表示为G(V,E),其中,G标示一个图,V是图G中顶点的集合,E是图G中边的集合. 无边图:若顶点Vi到Vj之间的边没有方向,则称这条边为无项边(Edge),用序偶对(Vi,Vj)标示. 对于下图无向图G1来说,G1=(V1, {E1}),其中顶点集合V1={A,B,C,D}:边集合E1={(A,B),(B,C),(C,D),(D,A),(A,C)}: 有向图:若

Spark RDD的fold和aggregate为什么是两个API?为什么不是一个foldLeft?

欢迎关注我的新博客地址:http://cuipengfei.me/blog/2014/10/31/spark-fold-aggregate-why-not-foldleft/ 大家都知道Scala标准库的List有一个用来做聚合操作的foldLeft方法. 比如我定义一个公司类: 1 case class Company(name:String, children:Seq[Company]=Nil) 它有名字和子公司. 然后定义几个公司: 1 val companies = List(Compa

WPF 下两种图片合成或加水印的方式(转载)

来源:http://www.cnblogs.com/lxblog/ 最近项目中应用多次应用了图片合成,为了今后方便特此记下. 在WPF下有两种图片合成的方式,一种还是用原来C#提供的GDI+方式,命名空间是System.Drawing 和 System.Drawing.Imaging,另一种是WPF中新添加的API,命名空间是 System.Windows.Media 和 System.Windows.Media.Imaging . 我们来做一个简单的例子,分别用上面的两种方式实现,功能是在一个

将两个数组相同index的value合并成一个新的value组成一个新的数组

前提: 这两个数组的长度相同 生成后的新数组长度也相同 返回值都是对象 把rows对象的key和value弄成两个数组, value是一个对象数组 遍历他 给他每一项添加一个新key为name 并把key相对应索引的值附给name 新数组的每一项就多了key为name的成员 原文地址:https://www.cnblogs.com/ll15888/p/11994462.html

两个List去掉重复元素放在一个List中去【两个Listsize值非常大】

/* * 思路: * 1.取得两个list的相同元素:list.retainAll(E)方法 * 2.两个list分别去掉相同的元素:list.removeAll(E); * 3.将剩下的两个List分别加入到一个新的List去:addAll */ public class Test1 { public static void main(String[] args) { List list1 = new ArrayList(); Random random = new Random(); //l

合并两个有序数组为一个新的有序数组

题目:有两个有序数组a,b,现须要将其合并成一个新的有序数组. 简单的思路就是先放到一个新的数组中,再排序.可是这种没体现不论什么算法,这里考的不是高速排序等排序算法.关键应该是怎样利用有序已知这个条件.能够这样想.如果两个源数组的长度不一样,那么如果当中短的数组用完了,即所有放入到新数组中去了,那么长数组中剩下的那一段就能够直接拿来放入到新数组中去了. public class MergeTwoSortedArrays { public static int[] merge(int[] a,

mysql 两个关联表如何更新其中一个表的数据

今天遇到一个客户的数据更新问题,两个相关联的表,一个主表用于保存单据主要信息,一个副表用于保存单据的明细信息:现在要把主表的其中一个字段的数据更新到副表的一个字段中保存. 假设: A表是主表,有单号order_id.开单人operator.开单日期oper_date.备注memo等: B表是副表,有单号order_id.序号id.商品编码code.商品名称name.备注memo等. A表的备注是有数据的,B表的备注没有数据,现在要把A表的数据更新到B表,并且B表有数据的不能更新了.A表与B表是以

Core Graphics 学习——1 两张图合成为一张图

-(UIImage *)MergeTwoImage { UIImage * img =[UIImage imageNamed:@"icon"]; CGSize sz = img.size; UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*2, sz.height), NO, 0); [img drawAtPoint:CGPointMake(0, 0)]; [img drawAtPoint:CGPointMake(sz