datatable 多次赋值还是声明多个datatable

问题描述

如果一个程序要多次查询数据库,操作可以分先后完成,那是将datatable多次赋值还是声明多个datatable?哪种方式好?

解决方案

解决方案二:
多次赋值吧,省资源,
解决方案三:
多次赋值!声明多个datatable的时候,每次都要new一下,就要分配内存
解决方案四:
引用2楼jiangshun的回复:

多次赋值!声明多个datatable的时候,每次都要new一下,就要分配内存

或者dataset
解决方案五:
new一下不会浪费多少内存和造成多少时间上的延迟,如果只有一个datatable变量多次赋值,会让程序看起来很乱,datatable的变量名和它存储的内容对不上号,程序不容易看明白,也容易乱,生成多个datatable变量,可以对不同数据起不同的名字,让人一看到名字就知道datatable中放的是什么数据,可理解性会提高很多,不容易出错,这是软件开发的一个原则,如果性能上(内存和速度)符合要求,那么最简单的程序是最好的程序,容易理解的程序是最好的程序,既然内存够用,何必为了节省一点内存而让程序看起来不明白?
解决方案六:
引用4楼stonespace的回复:

new一下不会浪费多少内存和造成多少时间上的延迟,如果只有一个datatable变量多次赋值,会让程序看起来很乱,datatable的变量名和它存储的内容对不上号,程序不容易看明白,也容易乱,生成多个datatable变量,可以对不同数据起不同的名字,让人一看到名字就知道datatable中放的是什么数据,可理解性会提高很多,不容易出错,这是软件开发的一个原则,如果性能上……

解决方案七:
那如果多次赋值,datatable的地址是否每次都不一样?原来的是否自动释放?
解决方案八:
多次new。单纯的new一个空DataTable的开销很小,基本上可以忽略。而且这样程序有逻辑,否则DataTable一路下来就不知道是那个表了。你给DataTable多次赋值只是改变它的引用地址而已,你赋给它的是你新构造的DataTable,它是要占用内存的,只要引用还在它就不会被释放,而且即使它为null了,也不能保证立即或很快就被.net回收。
解决方案九:
具体问题具体分析比如,我们要执行的操作是:对100张结构不同的表,从每一个表里取出(要查询)一些东西,满足一定业务要求。若要求这种操作十分频繁,则在内存够的情况下,就用100个datatable变量好;若要求操作次数不是很频繁,那么使用一个也勉强可以。其实按照常理,只要数据规模不是很大,内容够用,还是用多个变量的好
解决方案十:
永远记住一件事,一个方法只处理一件事。可以提高重用和降低代码的维护难度,更容易阅读.备忘录模式的外部备件说法是相通的.

时间: 2024-08-01 07:51:36

datatable 多次赋值还是声明多个datatable的相关文章

将DataTable中的一行复制到另一个DataTable的方法_实用技巧

将DataTable中的一行复制到另一个DataTable 方法1:         DataRow dr = ds2.Tables[0].NewRow();         dr.ItemArray = ds1.Tables[0].Rows[i].ItemArray;         ds2.Tables[0].Rows.Add( dr );  方法2:      ds2.Tables[0].ImportRow(ds1.Tables[0].Rows[i]);

datatable中取值问题-C#中,datatable中取某个元素值的问题,

问题描述 C#中,datatable中取某个元素值的问题, 解决方案 那么你到底是遇到什么问题呢?

全面的ASP.NET DataTable的操作大全

DataTable表示一个与内存有关的数据表,可以使用工具栏里面的控件拖放来创建和使用,也可以在编写程序过程中根据需要独立创建和使用,最常见的情况是作为DataSet的成员使用,在这种情况下就需要用在编程过程中根据需要动态创建数据表.那么在8.4节中主要讲用编码的方式来建立DataTable数据表以及对它的操作. 1 代码创建DataTable数据表 如上8.3节里面所讲,通过添加对象的方式直接在DataSet中创建数据表,可以通过使用Add方法将DataTable添加到DataSet中,这种是

c# datatable用法总结

一.DataTable简介 (1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例. DataTable(string tableName) 用指定的表名初始化DataTable 类的新实例. DataTable(string tableName, string tableNamespace) 用指定的表名和命名空间初始化DataTable 类的新实例. (2) 常用属性 CaseSensitive 指示表中的字符串比较是否区分大小写. ChildRelations

php学习之 数组声明

复制代码 代码如下: <?php /* * 一.数组的概述 * 1.数组的本质:管理和操作一组变量,成批处理 * 2.数组时复合类型(可以存储多个) * 3.数组中可以存储任意长度的数据,也可以存储任意类型的数据 * 4.数组可以完成其他语言数据结构的功能(链表,队列,栈,集合类) * * * * 二.数组的分类 * 数组中有多个单元,(单元称为元素) * 每个元素(下标[键]和值) * 单访问元素的时候,都是通过下标(键)来访问元素 * 1.一维数组,二维数组,三维数组...多维数组 * (数

高质量C++/C编程指南-第9章-类的构造函数、析构函数与赋值函数(4)

类String的赋值函数比构造函数复杂得多,分四步实现: (1)第一步,检查自赋值.你可能会认为多此一举,难道有人会愚蠢到写出 a = a 这样的自赋值语句!的确不会.但是间接的自赋值仍有可能出现,例如 // 内容自赋值 b = a; - c = b; - a = c; // 地址自赋值 b = &a; - a = *b; 也许有人会说:"即使出现自赋值,我也可以不理睬,大不了化点时间让对象复制自己而已,反正不会出错!" 他真的说错了.看看第二步的delete,自杀后还能复制自

C#将DataTable转化为List&lt;T&gt;

  本文给大家讲解的是如何使用C#将DataTable数据源转化为List泛型集合(已知T类型) 的方法和示例,有需要的小伙伴可以参考下 在使用三层架构开发一个网站时,希望把DataTable对象转换为List对象,于是在网上找资料,总结一个比较方便的方法来实现--使用反射. 思路: 初始化一个List对象 获取到T所有的属性,初始化一个T对象 遍历所有属性,如果DataTable中含有相应属性的值则为T对象赋值,如果没有对应的列则检查数据模型是否定义有误(属性名与列名比较时不区分大小写) 将T

[工具类]DataTable与泛型集合List互转

写在前面 工作中经常遇到datatable与list,对于datatable而言操作起来不太方便.所以有的时候还是非常希望通过泛型集合来进行操作的.所以这里就封装了一个扩展类.也方便使用. 类 方法中主要使用了反射的方式动态的为属性赋值以及取值. public static class Extension { /// <summary> /// 将datatable转换为泛型集合 /// </summary> /// <typeparam name="TEntity

无法将类型为“System.Windows.Forms.BindingSource”的对象强制转换为类型“System.Data.DataTable”

问题描述 c#无法将类型为"System.Windows.Forms.BindingSource"的对象强制转换为类型"System.Data.DataTable"代码:System.Data.DataTabledataSource=newSystem.Data.DataTable();if(base.DataSourceisDataView){dataSource=((DataView)base.DataSource).ToTable();}else{dataSo