寻解决方案:利用DataTable中每个行DataRow信息,连接数据库取数将结果存放到此DataRow中的信息结果列中。在线等!请指教!

问题描述

我的这个方案是要完成两个或多个DataTable的四则运算,运算是通过DataTable中共有的“时间”和“单位”列来关联运算,但是现在有一个问题是如果DataTable中“2007年1月”对应于有700多个单位,那这些表都具有700多行记录,如果正常取数的话。用每条记录信息生成条件,查询数据库返回结果信息大概是0.5秒钟,如果遍历DataRow顺序执行700多条记录,需要耗时350秒,如果有六七个DataTable参与运算,那时间还要扩大六七倍,我想请问各位,有没有一种更好的方法,解决这样的性能瓶颈问题!!!!请指教!!谢谢!

解决方案

解决方案二:
处理方法不对,DataTable是放在内存里面的表,内存本身就是保贵的资源,除非你的内存足够大。LZ写程序的时候还是先多考虑下设计方面的问题吧.
解决方案三:
数据运算,去重等操作一般还是在数据库内部里面处理比较好
解决方案四:
这可道理我也懂,主要是因为生成条件后取数是连接SYBASE数据库取数,而当前系统数据库是ORACLE,要把最终DataTableUpdate到当前Oracle中,所以不能直接写SQL语句在服务器端执行,有没有好的解决这个问题的办法?

时间: 2024-11-05 18:56:22

寻解决方案:利用DataTable中每个行DataRow信息,连接数据库取数将结果存放到此DataRow中的信息结果列中。在线等!请指教!的相关文章

为DataGrid中的行增加序号!

datagrid 有时,你需要为在DataGrid中显示每行的序号,如果使用Oracle数据库,你可以利用RowNum在Select命令中构造行序号,然后直接绑定到DataGrid,但是如果用的是SQL Server数据库,那么,该如何为Datagrid中增加行序号呢? ADO.NET中通过DataColumn的3个属性来支持自动增量列:AutoIncrement,AutoIncrementSeed,AutoIncrementStep.只要将DataColumn的AutoIncrement设置为

利用JavaScript选择GridView行

本篇技巧和诀窍记录的是:利用JavaScript选择GridView行. 下面我们利用JavaScript完成这一功能. 我们可以通过调用JavaScirpt函数改变单击的行的背景颜色来模拟选择的行 ,这里需要声明一个隐藏字段,从JS中获得选取GridView行的ID.在选择/删除 事件中,可以从隐藏字段中得到选择行的ID,完成一些需要功能. 第一步:在页面中添加GridView控件和一个按钮,隐藏字段 <input id="hdnEmailID" type="hidd

ASP.NET DataTable去掉重复行的2种方法

 这篇文章主要介绍了ASP.NET DataTable去掉重复行的2种方法,本文直接给出去重代码,需要的朋友可以参考下     第一种,使用Linq查询表达式,code如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DataTable testtable = new DataTable(); testtable.Columns.Add("ID"); testtable.Columns.Add("ProductName&quo

asp.net如何得到GRIDVIEW中某行某列值的方法

根据某列的值改变其样式最好的方法是在GridView的DataRowBound事件中想办法.在GridView中的行绑定数据后将立即执行 DataRowBound事件.DataRowBound事件使用GridViewRowEventargs类作为事件变量.通过事件变量你能够利用 GridViewRowEventArgs属性操作已经绑定数据的行. 复制代码 代码如下: protected void GridView1_RowDataBound(object sender, GridViewRowE

怎样用java实现 c#中Datarow[索引] 的取值的方式 ?

问题描述 怎样用java实现 c#中Datarow[索引] 的取值的方式 ? 怎样用java实现 c#中Datarow[索引] 的取值的方式 ?比如我有定义一个这样的数组:HashMap map=new HashMap<>();如何实现如下取值?map[""key""]=""值""; 解决方案 java不支持索引器,所以给出的解决方案就是使用方法代替(其实C#的索引器也是方法,只是写法上简化了点)比如map.get

查询-vb.net 在一个datatable 中,年和月在两列中。如何查找在某一时间区间的值。

问题描述 vb.net 在一个datatable 中,年和月在两列中.如何查找在某一时间区间的值. 例如我想查询2014-9 至2015-1的,就把2013-8月份的去除了. 解决方案 取datatable中每行中年和月的值拼接在一起,在做比较 解决方案二: datatable加一个DataColumn 设置Expression 属性 DocumnetYear+'-'+DocumnetMonthhttps://msdn.microsoft.com/zh-cn/library/system.dat

asp.net如何得到GRIDVIEW中某行某列值的方法_实用技巧

根据某列的值改变其样式最好的方法是在GridView的DataRowBound事件中想办法.在GridView中的行绑定数据后将立即执行DataRowBound事件.DataRowBound事件使用GridViewRowEventargs类作为事件变量.通过事件变量你能够利用GridViewRowEventArgs属性操作已经绑定数据的行. 复制代码 代码如下: protected void GridView1_RowDataBound(object sender, GridViewRowEve

c++-用C++读取文件中特定行的某几列数据并输出到另一个文件

问题描述 用C++读取文件中特定行的某几列数据并输出到另一个文件 AR ZIMM 2014 06 30 00 00 0.000000 2 2.175456910513e-08 1.929140019560e-11AR ZWE2 2014 06 30 00 00 0.000000 2 -6.930289135325e-03 2.317673679230e-11AS G01 2014 06 30 00 00 0.000000 2 1.652894267903e-05 1.737915981300e-

MySQL中的行复制

MySQL基于行的复制可以最大化保证主从复制的一致性,对于RBR(基于行复制) 和SBR(基于语句复制),相信大家已经很熟知,下面记录的是行复制在二进制日志总记录的情况. 基于行的复制是与位置相关的,binlog里面只记录相关表发生改变的列的数据.其中引入了四个新的事件: Table_map, Write_rows,Delete_rows,Update_rows. 一条语句执行后,在binlog里面,Table_map事件中包含表ID,和列的类型(没有列名,slave 可以利用这些信息对比和ma