ADO.NET定义
ADO是ActiveX Data Objects的缩写,ADO.NET是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序,就是一组类库,可以让我们通过程序的方式访问数据库(方便用户)。
由两个主要元件是 .NET Framework 资料提供者(1:SqConnection 2:SqlCommand 3:SqlDataReader 4:SqlDataAdapter)和数据集(DataSet)。
ADO.NET使用一些ADO对象,如Connection和Command对象,也引入了一些新对象。关键的新对象包括DataSet,DataReader,和DataAdapter。
ADO.NET五大对象
◆数据库好比水源,存储了大量的数据。
◆Connection好比伸入水中的进水笼头,保持与水的接触,只有它与水进行了“连接”,其他对象才可以抽到水。
◆Command则像抽水机,为抽水提供动力和执行方法,通过“水龙头”,然后把水返给上面的“水管”。
◆DataAdapter、DataReader就像输水管,担任水的传输任务,并起着桥梁的作用。DataAdapter(抽取完就可断开数据库连接) 像一根输水管,通过发动机,把水从水源输送到水库里(内存)进行保存。DataReader(保持数据库连接) 也是一种水管,和DataAdapter不同的是,DataReader不把水输送到水库里面,而是单向地直接把水送到需要水的用户那里或田地里,所以要比在水库中转一下(速度)更快。
◆DataSet则是一个大水库,把抽上来的水按一定关系的池子进行存放。即使撤掉“抽水装置”(断开连接,离线状态),也可以保持“水”的存在。这也正是ADO.NET的核心。
◆DataTable则像水库中的每个独立的水池子,分别存放不同种类的水。一个大水库由一个或多个这样的水池子组成。
SqlCommand---主要有以下三个方法:(Commands扫描连接然后结果集以流的形式被返回,这种流可以被DataReader对象读取,或者推入DataSet对象。)
1:ExecuterNonQuery()执行对数据库的增删改,返回受影响的行数
2:ExecuteScalar()执行查询,返回首行首列
3:ExecuteReader()执行查询,返回DataReader对象
如果在运行时动态指定 SelectCommand 属性(例如,通过接受用户提供的文本命令的查询工具),那么您可能无法在设计时指定适当的InsertCommand、UpdateCommand 或 DeleteCommand。如果您的 DataTable 映射到单个数据库表或者是从单个数据库表中生成的,那么您可以利用 DbCommandBuilder 对象来自动成 DbDataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand。
要使用CommandBuilder对象,需要首先定义起一个实例,将该实例绑定到数据适配器对象,然后调用数据适配器对象的Update方法更新DataSet对象即可。比如下面的语句。
SqlCommandBuilder MyCb = new SqlCommandBuilder(MyAdapter);
MyAdapter.Update(MyDataSet, "T_STUDENT");