2011-11-11 48 views
2

我创建了一个可以使用存储过程名称和SqlParameters列表调用的方法,我们称之为GetData()。 GetData()然后管理与SQL Server交谈并获取数据。然后,我需要将数据传回给调用者供他们阅读,他们不需要操纵它。我想弄清楚的是,如果最好将调用方返回给DataTable或SqlDataReader?C# - 传递DataTable与SqlDataReader

现在,我想用DataTable进行是最好的路线。我的决定点是:

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

这是否看起来像是我需要的最佳路线?

回答

2

是的,你的想法很好。

传递一个数据表,而不是sqldatareader。连接只能保持最少向/从数据库服务器传输数据所需的时间。

+0

感谢您的及时回复。 – ammills01

0

使用DataTable。数据绑定控件的构建是为了使用该抽象。