日期:2014-05-17  浏览次数:20896 次

ADO.NET,请帮忙看一下SqlDataReader 类
static void Main()
  {
  ArrayList dbRecordsHolder = new ArrayList();
  string connectionString = "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI"; 
  using (SqlConnection testConnection = new SqlConnection(connectionString))
  {
  SqlCommand testCommand = new SqlCommand("SELECT * FROM TESTDEMO", testConnection); testConnection.Open();
  SqlDataReader sqlDr = testCommand.ExecuteReader(CommandBehavior.CloseConnection);
  if (sqlDr.HasRows) 
  {
  foreach (DbDataRecord rec in sqlDr)
  {
  dbRecordsHolder.Add(rec); 
  }
  }
  } 
  Console.ReadKey(); 
  }

我对DbDataRecord不懂,看了MSDN也看不懂,请帮忙解释一下DbDataRecord rec in sqlDr
sqlDr是一个SqlDataReader啊,怎么搞得像一个集合似的。
DbDataRecord类:http://msdn.microsoft.com/zh-cn/library/system.data.common.dbdatarecord.aspx

------解决方案--------------------
DbDataRecord对象可以理解为数据阅读器读取的“当前行”或“当前记录”。
------解决方案--------------------
使 DataReader 能访问每一行中的列值,看IDataRecord帮助
------解决方案--------------------
继承链 SqlDataReader-->DbDataReader-->IEnumerable,
IEnumerable接口,自定义实现了迭代的功能。所以可将其作为一个集合遍历。
------解决方案--------------------
很少见