DataReader基础知识

时间:2015-02-26 11:23:58

标签: c# ado.net datareader

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

  
      
  1. DataReader提供了一个游标,可用于向前和向后移动结果。
  2.   

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

  
      
  1. DataReader为结果提供随机访问功能。
  2.   

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

  
      
  1. 应用程序代码可以通过将其直接加载到a中来快速引用多行结果集的第一行   数据表
  2.   

我认为,这是真的,但不确定多排。

  
      
  1. DataReader可以将结果的Schema提供给应用程序代码。
  2.   

我认为,这是假的,但从未在文档中找到它(DataReader不提供Schema)

我的回答是对的吗?

2 个答案:

答案 0 :(得分:1)

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

  1. 有从DataReader获取架构的方法 http://support.microsoft.com/kb/310108/

答案 1 :(得分:1)

  1. 是。它只是前进。
  2. 你又是对了。
  3. 因为DataReader是无缓冲的并且可以使用流,所以它比将数据加载到DataTable更快。
  4. DataReader可以通过DataReader.GetSchemaTable()
  5. 提供架构