看VB.net视频的时候涉及到了ADO.net的内容,总是感觉很熟悉,现在想起来这是我们在刚开始学习数据库的时候再红皮书上有介绍过ADO模型,这两者有很多相似的地方。
ADO.net(AxtiveX Data Objects)是一组和数据源进行交互的面向对的的类库一共包括6个。
他们之间有很多的相似,也有很多的不同。
连接和命令
两者的Connection和Command很相似,在Connection中定义要打开的数据源的字符串,Command用来执行增删改查命令,将查到的结果返回。Ado.net的Command有三种常用的方法,ExecuteReader()执行读写将Select的结果放在DataReader中、ExecuteScalar()可从相关的查询中返回第一行和第一列的值、ExecuteNonQuery()可以执行insert、delete、Update。
保存返回结果
返回的结果在ADO模型和ADO.net中保存的地方是不一样的。在ADO模型中是放在RecordSet中然后对结果在进 行操作,而ADO.net放在DataReader或DataSet中。
那么ADO.net的DataReader和DataSet的又有什么区别呢。
DataReader它只能够快速的向下读取Select语句得到的结果。而DataSet和RecordSet很相似,只是RecordSet相当一只表,DataSet是多个表集合,包含了多个DataTable,而DataTable就像一个普通的数据库中的表,所以可以完成各种操作。还要注意DataSet是一个离线式的RecordSet,它能够帮助管理在内存中的数据。
DateSet中的数据需要由DataAdapter进行填充,对每一个DataSet的Table都会定义一个DataAdapter。使用如下:(各使用的变量已经定义好)
Sql=”Select * From Table1” ‘定义SQL语句 Conn = newsqlConnection(strconn) ‘定义一个连接 Cmd= newSqlCommand(sql,Conn) ‘定义好一个命令 Dim Adataset As New DataSet '定义一个DataSet可以用来储存查到的结果 Dim adaptor As SqlDataAdapter '用将查到的结果填到DataSet中 Dim adatatable As New DataTable '定义新的表,在DataSet中可以存放多张表 Conn.Open() adaptor.Fill(Adataset, "set") '将结果填写到DataSet中名为set的表中 adatatable = Adataset.Tables("set") '将结果以表的形式赋给定义的Table Conn.Close() Return adatatable <span style="font-family: Arial, Helvetica, sans-serif;">‘返回表</span>
原文地址:http://blog.csdn.net/yxflovegs2012/article/details/41788007