认识ADO和ADO.Net
ActiveX Data Object(简称ADO)是微软提供的数据访问模型,依据这个模型可很轻松的操作数据库。同时ADO受到微软所以开发工具的支持,所以无论是VB、VC、ASP开发都可以使用。所以开发ASP数据库应用程序,只需在代码中嵌入SQL(结构化查询语言)命令,用户就可以很轻松的输入、更新、和删除后台的数据库记录。当用户端的浏览器填好表单所要求输入的资料并按下“Submit(确认)”按钮后,经过互联网、内联网传送HTTP请求到WEB服务器,该请求在WEB服务器执行一个表单所指定的Active Server Pages程序(后缀名为.ASP的文档)。
从ADO.Net不仅仅是ADO的一个简单升级,它是微软.NET战略的一个重要组成部分,那么到底和以前有什么不同呢?现在就让本文来告诉你。
以前在ADO中进行数据处理的主要方法是OLEDB,现在在ADO.Net中也是如此。但是微软为了更好地支持目前广泛使用的两个数据库Oracle和SQL Server对OLEDB做了专门的扩展,它们分别是OracleClient和SQLClient 类,当然由于数据库产品很多,为了便于以前的OLEDB的程序升级,故也对OLEDB本身做了升级处理。在.Net中表现为OLEDB类。
那么这三个类——OLEDB、OracleClient和SQLClient在编程使用上到底有什么不同呢?值得庆幸的是在.Net中进行数据库的编程时,不管你使用上面提到的3个类中的哪一个类,这3个类在语法和用法上都大同小异,可以用一通百通来形容。
怎样学习ADO.Net技术
笔者在学习和使用了ADO.Net编程后,总结出下面3个必需的步骤,而且这3个步骤的顺序是绝对不可以调换的,如果在以后的编程中发现3个步骤的顺序换了或缺了一个步骤,那么你的代码肯定是错的:
1.使用对应类中的连接方法来连接数据库。如使用SQLClient类,那么就用SqlConnection1建立数据库的链接。
2.打开此链接。
3.执行对应类中的命令方法来指定要执行的SQL语句。如使用SQLClient类就使用SqlCommand执行指定的SQL语句。
下面举出的两个例子就是在.Net中使用ADO.Net编程的代码。由于SQL Server 在使用中比Oracle简单,所以这里的数据库使用Microsoft的SQL Server 2000。原因是它在安装后无须配置就可以直接使用。既然访问的是SQL Server,那么使用的类当然是SQLClient类。这两个例子是:
1.在数据库中对数据进行添加,删除,修改。
2.利用ADO技术建立一个SQL Server 2000的数据库。
例 一
启动SQL Server2000,然后建立一个数据库和一个表,并且在表中一定要有主键,随便输入一些数据。完成后保存此表。
本文使用的表结构如下:
id列 | int型 | 标志列 | 主键 |
d列 | char型 |
表名:使用系统默认的表名table1
然后打开VS.Net建立一个新的工程,并从工具箱中将“SqlDataAdapter”控件拖动到窗口底部,随后“数据适配器配置向导”窗口会自动运行,按照向导提示完成操作(如图)。
Private Sub Form1_Load?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles MyBase.Load SqlDataAdapter1.Fill?DataSet11? ″Table1″?'将表中的数据添加到DataSet1中。 End Sub |
Private Sub Button1_Click?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles Button1.Click SqlDataAdapter1.Update?DataSet11?″Table1″?' 完成数据库的添加、删除、修改功能。 End Sub |
SqlDataAdapter: | 建立数据库的连接,完成数据库的添加、删除、修改功能的配置。 |
SqlConnection: | 建立连接字符为SqlCommand提供连接依据。 |
DataSet1: | 加载表结构和表数据,以便在表格中显示具体数据。 |
SqlCommand: | 用来执行对表的各种具体的操作。 |
Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Button1_Click?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles Button1.Click Dim con As New OleDb.OleDbCon nection?″Provider=SQLOLEDB.1?Integrated Security=SSPI?Persist Security Info=False?Initial Catalog=Northwind?Data Source=.?Use Procedure for Prepare=1?Auto Translate=True?Packet Size=4096?Workstation ID=J?Use En cryption for Data=False?Tag with column collation when possible=False″?'建立与数据库的连接 con.Open??'打开连接 Dim cmd As New OleDb.OleDbCommand?″create database jk″? con? '创建数据jk cmd.ExecuteNonQuery??'执行创建命令 con.Close??'关闭连接 '建立数据库 End Sub |
Private Sub Button2_Click?ByVal sender As System.Object? ByVal e As System.EventArgs? Handles Button2.Click Dim con2 As New OleDb.OleDbCon nection?″Provider=SQLOLEDB.1?Integrated Security=SSPI?Persist Security Info=False?Initial Catalog=jk?Data Source=.?Use Procedure for Prepare=1?Auto Trans late=True?Packet Size=4096?Workstation ID=J?Use Encryption for Data=False?Tag with column collation when possible=False″?'建立与数据库的连接 con2.Open??'打开连接 Dim cmd As New OleDb.OleDbCom mand?″create table kk?id int identity?1?1? not null constraint id primary key?name char?4? not null?″? con2? '建立表kk cmd.ExecuteNonQuery?? Dim cmd2 As New OleDb.OleDbCom mand?″create table pp?id int not null?ads char?20? null?″? con2? '建立表pp cmd2.ExecuteNonQuery??'执行建立表命令 con2.Close??'关闭连接 '建立2个表 End Sub End Class |