繁体   English   中英

C#是否可以为DataTable对象设置内存限制大小?

[英]C# Is it possible to set a memory limit size for a DataTable object?

我知道DataTable具有最小容量属性,但是有最大容量属性吗? 在用数据填充对象时,如果达到最大大小会在哪里生成异常?

例如:

DataTable table = new DataTable();

using(SqlCommand cmd = new SqlCommand(sqlQuery, sqlConn))
{
  SqlDataAdapter ds = new SqlDataAdapter(cmd);
  da.Fill(table); //generate exception if DataTable is filled with too much data (e.g. over 100mb in size)
}

两部分答案:

  1. 最小容量属性是最初分配的数据行数 ,与使用的字节数/ MB无关。 一行可能是10个字节,也可能是多个MB,具体取决于您要加载的内容。
  2. .NET将分配所需的内容,直到不再可用为止(请参阅System.OutOfMemoryException ),我认为这对大多数(即使不是全部)分配都是正确的。 您不能限制它,除非您控制所有代码,尤其是所有分配并开始计算字节,我不建议这样做。 我想不出框架中对此有任何支持的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM