【发布时间】:2014-04-02 08:33:27
【问题描述】:
我在获取数据时遇到错误
抛出了“System.OutOfMemoryException”类型的异常
错误获取线路是dataAdapter.Fill(dataTable);
我的表中有 (2826000) 条记录。
这是我正在使用的代码。
var dataTable = new DataTable();
var DicTableNameAndValues = new Dictionary<string, object>();
using (var connection = new SqlConnection(ConnectionString))
{
connection.Open();
var dataQuery = "SELECT * FROM " + table;
using (var command = new SqlCommand(dataQuery, connection))
{
var dataAdapter = new SqlDataAdapter(command);
dataAdapter.Fill(dataTable);
var result = dataTable.AsEnumerable().Skip(skip).Take(pageSize).ToList().Select(c => c.ItemArray);
DicTableNameAndValues.Add(table, result);
}
}
【问题讨论】:
-
你确定吗?这个方法的documentation 并没有说它会抛出
OutOfMemoryException -
从数据库中只获取所需数量的记录,而不是将所有记录都带到客户端然后只取出其中的几条,怎么样?