我已经创建了一个可以使用存储过程名称和SqlParameters列表调用的方法,我们将其称为GetData()。然后,GetData()管理与SQL Server的通信并获取数据。然后我需要做的是将数据返回给调用者供他们读取,他们不需要操作它。我想弄清楚的是,如果它是最好的手回调用者一个数据表或SqlDataReader?
现在,我认为使用DataTable是最好的方法。我的决定点是:
- 我得到的数据集很小,在100行和20列以下,所以内存不应该是一个问题。
- 据我所知,一个数据表抓取所有的数据,并将其插入数据表,然后断开连接,所以GetData()将管理它自己的连接。
- 使用SqlDataReader,我必须在处理完数据后管理调用函数中的连接。在GetData()中调用后,我将无法关闭它,因为我一次只能从数据库中读取一行。
这似乎是我所需要的最好的途径吗?
是的,你的主意很好。
返回一个数据表,而不是sqldatareader。维护连接的时间应该保持在最小时间范围内,以便将数据传输到数据库服务器或从数据库服务器传输数据。
使用一个数据表。数据绑定控件就是使用这个抽象来构建的。