认识ADO和ADONet
ActiveX Data Object(简称ADO)是微软提供的数据访问模型依据这个模型可很轻松的操作数据库同时ADO受到微软所以开发工具的支持所以无论是VBVCASP开发都可以使用所以开发ASP数据库应用程序只需在代码中嵌入SQL(结构化查询语言)命令用户就可以很轻松的输入更新和删除后台的数据库记录当用户端的浏览器填好表单所要求输入的资料并按下Submit(确认)按钮后经过互联网内联网传送HTTP请求到WEB服务器该请求在WEB服务器执行一个表单所指定的Active Server Pages程序(后缀名为ASP的文档)
从ADONet不仅仅是ADO的一个简单升级它是微软NET战略的一个重要组成部分那么到底和以前有什么不同呢?现在就让本文来告诉你
以前在ADO中进行数据处理的主要方法是OLEDB现在在ADONet中也是如此但是微软为了更好地支持目前广泛使用的两个数据库Oracle和SQL Server对OLEDB做了专门的扩展它们分别是OracleClient和SQLClient 类当然由于数据库产品很多为了便于以前的OLEDB的程序升级故也对OLEDB本身做了升级处理在Net中表现为OLEDB类
那么这三个类——OLEDBOracleClient和SQLClient在编程使用上到底有什么不同呢?值得庆幸的是在Net中进行数据库的编程时不管你使用上面提到的个类中的哪一个类这个类在语法和用法上都大同小异可以用一通百通来形容
怎样学习ADONet技术
笔者在学习和使用了ADONet编程后总结出下面个必需的步骤而且这个步骤的顺序是绝对不可以调换的如果在以后的编程中发现个步骤的顺序换了或缺了一个步骤那么你的代码肯定是错的
使用对应类中的连接方法来连接数据库如使用SQLClient类那么就用SqlConnection建立数据库的链接
打开此链接
执行对应类中的命令方法来指定要执行的SQL语句如使用SQLClient类就使用SqlCommand执行指定的SQL语句
下面举出的两个例子就是在Net中使用ADONet编程的代码由于SQL Server 在使用中比Oracle简单所以这里的数据库使用Microsoft的SQL Server 原因是它在安装后无须配置就可以直接使用既然访问的是SQL Server那么使用的类当然是SQLClient类这两个例子是
在数据库中对数据进行添加删除修改
利用ADO技术建立一个SQL Server 的数据库
例 一
启动SQL Server然后建立一个数据库和一个表并且在表中一定要有主键随便输入一些数据完成后保存此表
本文使用的表结构如下
表名使用系统默认的表名table
然后打开VSNet建立一个新的工程并从工具箱中将SqlDataAdapter控件拖动到窗口底部随后数据适配器配置向导窗口会自动运行按照向导提示完成操作(如图)
需要注意的是在出现的生成SQL语句窗口中要输入标准的select语句在本例中我们将从表Table中返回id和d这两列所以应该输入SELECT id d FROM Table语句当然单击查询生成器按钮系统也可以自动生成这条语句
当完成数据适配器配置向导后你会在窗口的底部发现系统自动添加了SqlConnection接下来右击SqlDataAdapter在快捷菜单中选择生成数据集随后可以看见生成数据集设置窗口保持默认设置并单击确定现在又会发现在设计窗口下多了一个Dataset
到此为止就差最后一个控键SqlCommand我们只要在工具栏中将它拖放过来并修改其属性的Connection设置为SqlConnection并在CommandText属性中利用查询生成器为其生成select语句即可到现在为止我们就完成了ADONet访问数据库的一大半了
网格是显示数据的最好方法为了让数据显示在网格中我们需要添加此控件并且修改其属性添加的方法就是直接从工具箱中将它拖过来即可不过它的属性设置倒是很简单只要将Datasource设置为Datasettable即可table是表示表的名字
最后添加两行代码即可完成对数据的添加删除修改的操作
在Form_Load部分加入Sql DataAdapterFillDataSet ″Table″代码
Private Sub Form_LoadByVal sender As SystemObject ByVal e As SystemEventArgs Handles MyBaseLoad
SqlDataAdapterFillDataSet ″Table″将表中的数据添加到DataSet中
End Sub
添加一个Button在Button_Click中加入SqlDataAdapterUpdateDataSet ″Table″代码
Private Sub Button_ClickByVal sender As SystemObject ByVal e As SystemEventArgs Handles ButtonClick
SqlDataAdapterUpdateDataSet″Table″ 完成数据库的添加删除修改功能
End Sub
程序说明其中SqlDataAdapterFil语句是把表中具体的数据添入DataSet后而SqlDataAdapterUpdate是表示当完成对数据的修改后使用Update进行数据库的更新使修改的数据生效按F运行程序你就可以看见表中的数据都显示出来了同时你可以随意对它们进行修改如要删除数据只要按下键盘上的del键即可
例一中使用控件的简单介绍
例 二
这里为了让大家知道OLEDB和SQLClient在Net中多么地接近此例子将使用Net中的OLEDB类在这个程序中我们将使用ADONet中的OLEDB类和SQL语句来建立数据库表接着上例添加个命令按钮不修改任何属性并再加入如下代码
Public Class Form
Inherits SystemWindowsFormsForm
Private Sub Button_ClickByVal sender As SystemObject ByVal e As SystemEventArgs
Handles ButtonClick
Dim con As New OleDbOleDbCon nection″Provider=SQLOLEDBIntegrated
Security=SSPIPersist Security Info=FalseInitial Catalog=NorthwindData
Source=Use Procedure for Prepare=Auto Translate=TruePacket
Size=Workstation ID=JUse En cryption for Data=FalseTag with column collation
when possible=False″建立与数据库的连接
conOpen打开连接
Dim cmd As New OleDbOleDbCommand″create database jk″ con 创建数据jk
cmdExecuteNonQuery执行创建命令
conClose关闭连接
建立数据库
End Sub
程序说明在Button_Click中可以看出连接对象的连接字符串和前面由系统自动生成的连接字符串不同原因是我门要创建的新数据库jk 还并不存在所以为了使连接数据库成功并且有足够的权利来建立jk数据库就必须通过以SQLServer管理员的身分连接一个SQL Server中已有的数据库获得对整个SQL Server的访问控制权限再建立jk数据库这里连接的是Northwind数据库而后面的的Button_Click直接连接到jk数据库因为我们要在jk数据库中建立表
Private Sub Button_ClickByVal sender As SystemObject ByVal e As
SystemEventArgs Handles ButtonClick
Dim con As New OleDbOleDbCon nection″Provider=SQLOLEDBIntegrated
Security=SSPIPersist Security Info=FalseInitial Catalog=jkData Source=Use
Procedure for Prepare=Auto Trans late=TruePacket Size=Workstation ID=JUse
Encryption for Data=FalseTag with column collation when possible=False″建立与数据库的连接
conOpen打开连接
Dim cmd As New OleDbOleDbCom mand″create table kkid int identity not
null constraint id primary keyname char not null″ con 建立表kk
cmdExecuteNonQuery
Dim cmd As New OleDbOleDbCom mand″create table ppid int not nullads
char null″ con 建立表pp
cmdExecuteNonQuery执行建立表命令
conClose关闭连接
建立个表
End Sub
End Class
程序说明程序中Button_Click建立了两个表kk和pp其中kk包括一个种子列并且设定为主键pp是一个一般的表其实通过Button_Click中所用的方法我们还可以建立数据库中的存储过程约束等其方法就是将OleDbCommand后的建立表的SQL语句换成存储过程约束的SQL语句即可由于SQL语句已经超出了本文的范围所以这里不做讲解
总 结
对于ADONet的编程来说除了要掌握ADONet的技术外还必须掌握数据库的一些知识本文只是编写了两个简单的数据库程序其目的是让大家知道ADONet的编程其实本身并不复杂