ado.net------DataSet\DataReader

ado.net------DataSet\DataReader     /* 许多支持以DataSet作为数据源的数据邦定控件(DataGrid)等,
ado.net------DataSet\DataReader             * 也同样支持到DataReader的邦定:
ado.net------DataSet\DataReader             * DataSet ds = new DataSet();
ado.net------DataSet\DataReader             * //TODO:Initialize DataSet
ado.net------DataSet\DataReader             * MyDataGrid.DataSource = ds;  
ado.net------DataSet\DataReader             * MyDataGrid.DataBind();
ado.net------DataSet\DataReader             * 同样的代码也可以用DataReader实现:
ado.net------DataSet\DataReader             * SqlDataReader sdr = comm.ExecuteReader();
ado.net------DataSet\DataReader             * MyDataGrid.DataSource = sdr;
ado.net------DataSet\DataReader             * MyDataGrid.DataBind();
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             * 邦定到DataReader更高效,
ado.net------DataSet\DataReader             * 是因为DataReader不会把结果集留在内存中让GC来收集 
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             
*/


ado.net------DataSet\DataReader    /*虽然在内存中不依赖外部数据源新建DataSet对象是完全可以的,但实际上DataSet总是通过
ado.net------DataSet\DataReader             * 数据库查询或者XML文档来初始化的。
ado.net------DataSet\DataReader             * DataSet不直接和数据库交互,而是由DataAdapter来完成这项工作。
ado.net------DataSet\DataReader             * DataAdapter的目的是执行数据库查询并创建包含查询结果的DataTable。
ado.net------DataSet\DataReader             * 它也能够把对DataTable的更改写回数据库。DataAdapter是位于DataSet和物理数据源之间的一个抽象层。
ado.net------DataSet\DataReader             * SqlDataAdapter和OleDbDataAdapter都继承自同一个类:System.Data.Common.DbDataAdapter。
ado.net------DataSet\DataReader             * DataAdapter最重要的方法是Fill和Update,
ado.net------DataSet\DataReader             * 前者查询数据库并用结果初始化DataSet(实际上是DataTable),后者把更改写回数据库。
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             *
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             
*/

ado.net------DataSet\DataReader            SqlDataAdapter adapter 
=   new  SqlDataAdapter( " select * from titles " " server=.;database=pubs;uid=sa;pwd=; " );            
ado.net------DataSet\DataReader            DataSet ds 
=   new  DataSet();
ado.net------DataSet\DataReader            adapter.Fill(ds,
" Titles " );
ado.net------DataSet\DataReader            
// TODO: Fill用传递给SqlDataAdapter的构造函数的第二个参数(连接字符串)打开一个指向Pubs数据库连接
ado.net------DataSet\DataReader            
// TODO:1.在DataSet中创建一个名为Titles的表。
ado.net------DataSet\DataReader            
// 2.用数据库中的Titles表的架构初始化DataTable,
ado.net------DataSet\DataReader            
// --〉Mapping,“Titles”既是数据库表,在DataSet中又有一个DataTable“Titles”
ado.net------DataSet\DataReader            
// 3.检索由查询产生的所有记录,并把它们写入到DataTable中
ado.net------DataSet\DataReader            
// 4.关闭指向数据库的连接
ado.net------DataSet\DataReader

ado.net------DataSet\DataReader   /*在内部DataAdapter用一个DataReader获取查询结果,
ado.net------DataSet\DataReader             * 但这只是一个实现细节。
ado.net------DataSet\DataReader             * 真正重要的是:只需要一个简单的调用,就可以用数据库的数据填充DataSet。
ado.net------DataSet\DataReader             * ---〉Adapter.Fill(ds,"Titles");
ado.net------DataSet\DataReader             * 而且由于有SqlDataAdaper("","")的第一个参数提供了构成查询的命令,
ado.net------DataSet\DataReader             * 所以可以让查询很复杂,从而也可以控制哪些数据可以进入DataSet
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             * 而且可以对同一个DataSet多次调用Fill(但是使用不同的表名)
ado.net------DataSet\DataReader             * -----〉填充有多个DataTable表的DataSet
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             * 而且如果已经完成了操作,但是想重用DataSet,可以调用ds.Clear(),
ado.net------DataSet\DataReader             * 该方法--〉remove all rows in all tables  ,来清理旧的DataTable。
ado.net------DataSet\DataReader             * 
ado.net------DataSet\DataReader             
*/

ado.net------DataSet\DataReader

ado.net------DataSet\DataReader

ado.net------DataSet\DataReader

你可能感兴趣的:(reader)