DataReader 基础知识

DataReader fundamentals

我的测试中有一些问题,我想确定我的答案。 需要说句子是真是假。所以:

  1. The DataReader provides a cursor that can be used to move forward and backwards through the result.

错误,因为光标只能用于向前移动,不能向后移动。

  1. The DataReader provides random access capabilities on the result.

错误,DataReader 是游标,不允许随机访问

  1. 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

我认为是的,但不确定多行。

  1. The DataReader can provide the Schema of the result to the application code.

我认为,这是错误的,但从未在文档中找到它(DataReader 不提供架构)

我的答案对吗?

在第 3 点。- DataReader 将一次读取一行,因此速度更快(要填充 table,您必须获取所有行,将它们转换为对象并将它们附加到数据源)。这也是一个问题,因为(取决于 sql 配置)在您全部阅读之前将保持打开状态 - 这可能会导致一些锁定问题。

  1. 有办法从 DataReader 获取架构 http://support.microsoft.com/kb/310108/
  1. 是的。仅向前。
  2. 你又说对了。
  3. 因为 DataReader 是无缓冲的并且使用流,所以它比将数据加载到 DataTable 更快。
  4. DataReader 可以通过 DataReader.GetSchemaTable() 提供架构。