小编Bra*_*don的帖子

需要一次一个地遍历SQL表行(表太大而无法使用adapter.Fill)

我很容易通过这样的小型SQL Server 2005表进行读取:

string cmdText = "select * from myTable";
SqlDataAdapter adapter = new SqlDataAdapter(cmdText, connection);
DataTable table = new DataTable();
adapter.Fill(table);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法似乎将整个表加载到内存中,这根本不适用于我正在使用的巨大表.

我希望能够一次一行地遍历表,这样一次只需要一行存储在内存中.有点像:

foreach (DataRow row in rowIteratorObject)
{
  // do something using the row

  // current row goes out of scope and is no longer in memory
}
Run Code Online (Sandbox Code Playgroud)

类似于您可以使用StreamReader一次处理一行文本文件的方式,而不是一次性读取所有文本文件.有没有人知道用表格行来做这个的方法(或者,如果我咆哮错误的树,另一种解决方案)?

c# sql memory sql-server row

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

memory ×1

row ×1

sql ×1

sql-server ×1