C# - 传递DataTable与SqlDataReader

时间:2011-11-11 16:40:03

标签: c# datatable sqldatareader

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

现在,我认为使用DataTable是最佳途径。我的决定点是:

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

这似乎是我需要的最佳途径吗?

2 个答案:

答案 0 :(得分:2)

是的,你的想法很好。

传回数据表,而不是sqldatareader。只应在与数据库服务器之间传输数据所需的最小时间内保持连接。

答案 1 :(得分:0)

使用DataTable。构建数据绑定控件以使用该抽象。