SqlDataAdapter到底把数据填充到哪了
为什么DataTable中Rows.List是Null啊?
DataSet ds = ...;
SqlDataAdapter.Fill(ds)
DataTable dt = ds.Tables[0]
首先问题的根源跟SqlDataAdapter没有关系,是DataTable的自身的问题。
DataTable的Rows中的List属性是在DataRowCollection类下的继承类InternalDataCollectionBase中。
//
// 摘要:
// 获取作为列表集合的项。
//
// 返回结果:
// System.Collections.ArrayList 包含的集合。
protected virtual ArrayList List { get; }
这里有两个问题需要关注:
1、List属性你是取不到的,因为他是受保护的。
2、根据官方的解释InternalDataCollectionBase 类提供用于创建集合的基本功能,但不应将 BaseCollection 类及其成员用作独立组件,而是用作其他集合类从中派生标准功能的类,也就是说这里LIst即使非受保护,他也并没有实现功能而是作为集合类的实现标准。
以上为个人见解,如有不对的地方请各位大佬斧正!