DataReader 基础知识
DataReader fundamentals
我的测试中有一些问题,我想确定我的答案。
需要说句子是真是假。所以:
- The DataReader provides a cursor that can be used to move forward and backwards through the result.
错误,因为光标只能用于向前移动,不能向后移动。
- The DataReader provides random access capabilities on the result.
错误,DataReader 是游标,不允许随机访问
- The Application code can reference the first row of a multi-row result set faster than it can be by loading it directly into a
DataTable
我认为是的,但不确定多行。
- The DataReader can provide the Schema of the result to the application code.
我认为,这是错误的,但从未在文档中找到它(DataReader 不提供架构)
我的答案对吗?
在第 3 点。- DataReader 将一次读取一行,因此速度更快(要填充 table,您必须获取所有行,将它们转换为对象并将它们附加到数据源)。这也是一个问题,因为(取决于 sql 配置)在您全部阅读之前将保持打开状态 - 这可能会导致一些锁定问题。
- 有办法从 DataReader 获取架构
http://support.microsoft.com/kb/310108/
- 是的。仅向前。
- 你又说对了。
- 因为 DataReader 是无缓冲的并且使用流,所以它比将数据加载到 DataTable 更快。
- DataReader 可以通过
DataReader.GetSchemaTable()
提供架构。
我的测试中有一些问题,我想确定我的答案。 需要说句子是真是假。所以:
- The DataReader provides a cursor that can be used to move forward and backwards through the result.
错误,因为光标只能用于向前移动,不能向后移动。
- The DataReader provides random access capabilities on the result.
错误,DataReader 是游标,不允许随机访问
- The Application code can reference the first row of a multi-row result set faster than it can be by loading it directly into a DataTable
我认为是的,但不确定多行。
- The DataReader can provide the Schema of the result to the application code.
我认为,这是错误的,但从未在文档中找到它(DataReader 不提供架构)
我的答案对吗?
在第 3 点。- DataReader 将一次读取一行,因此速度更快(要填充 table,您必须获取所有行,将它们转换为对象并将它们附加到数据源)。这也是一个问题,因为(取决于 sql 配置)在您全部阅读之前将保持打开状态 - 这可能会导致一些锁定问题。
- 有办法从 DataReader 获取架构 http://support.microsoft.com/kb/310108/
- 是的。仅向前。
- 你又说对了。
- 因为 DataReader 是无缓冲的并且使用流,所以它比将数据加载到 DataTable 更快。
- DataReader 可以通过
DataReader.GetSchemaTable()
提供架构。