C# - 传递 DataTable 与 SqlDataReader

标签 c# datatable sqldatareader

我已经创建了一个可以使用存储过程名称和 SqlParameters 列表调用的方法,我们称它为 GetData()。 GetData() 然后管理与 SQL Server 的对话并获取数据。然后我需要做的是将数据交回给调用者供他们阅读,他们不需要操作它。我想弄清楚的是,是否最好将调用者交回 DataTable 或 SqlDataReader?

目前,我认为使用 DataTable 是最佳途径。我对此的决定点是:

  • 我取回的数据集很小,不到 100 行和 20 列,因此内存应该不是问题。
  • 据我所知,DataTable 获取所有数据并将其插入 DataTable,然后自行断开连接,以便 GetData() 管理它自己的连接。
  • 使用 SqlDataReader,我必须在处理完数据后在调用函数中管理连接。在 GetData() 中调用后我将无法关闭它,因为我一次只从数据库中读取一行。

这是否是实现我所需的最佳途径?

最佳答案

是的,你的想法很好。

传回一个数据表,而不是 sqldatareader。连接应仅维持最短 向数据库服务器传输数据/从数据库服务器传输数据所需的时间。

关于C# - 传递 DataTable 与 SqlDataReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8097115/

相关文章:

c# - 异常和内存

javascript - 使用数据表的按钮自定义过滤

c# - Winforms 中的 DatagridView,SqlDataReader 是否在循环结束时自动关闭?

c# - 如何避免向数据表添加重复行

c# - 使用最小起订量进行 Nunit 测试

c# - Xamarin ListView 不显示任何数据

c# - Automapper 返回空对象,源对象不为空。为什么会这样?

C# 将 DataTable 绑定(bind)到现有的 DataGridView 列定义

c# - 将 C# 表数据插入 SQL Server 表

c# - 我怎么知道什么时候到达数据读取器的末端?