分享
 
 
 

使用ADO.NET设计数据库应用程序

王朝c#·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

认识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”控件拖动到窗口底部,随后“数据适配器配置向导”窗口会自动运行,按照向导提示完成操作(如图)。

需要注意的是,在出现的“生成SQL语句”窗口中要输入标准的select语句,在本例中我们将从表Table1中返回id和d这两列。所以应该输入“SELECT id d FROM Table1”语句,当然单击“查询生成器”按钮系统也可以自动生成这条语句。

当完成“数据适配器配置向导”后,你会在窗口的底部发现系统自动添加了“SqlConnection1”。接下来右击“SqlDataAdapter1”,在快捷菜单中选择“生成数据集”,随后可以看见“生成数据集”设置窗口,保持默认设置并单击“确定”。现在又会发现在设计窗口下多了一个“Dataset11”。

到此为止,就差最后一个控键“SqlCommand”,我们只要在工具栏中将它拖放过来并修改其属性的“Connection”设置为“SqlConnection1”,并在“CommandText”属性中利用“查询生成器”为其生成select语句即可。到现在为止,我们就完成了ADO.Net访问数据库的一大半了。

网格是显示数据的最好方法,为了让数据显示在网格中我们需要添加此控件并且修改其属性。添加的方法就是直接从工具箱中将它拖过来即可。不过它的属性设置倒是很简单,只要将“Datasource”设置为“Dataset11.table”即可,table是表示表的名字。

最后添加两行代码即可完成对数据的添加、删除、修改的操作。

在Form1_Load部分加入“Sql DataAdapter1.FillDataSet11 ″Table1″”,代码:

PRivate Sub Form1_LoadByVal sender As System.Object ByVal e As System.EventArgs Handles MyBase.Load

SqlDataAdapter1.FillDataSet11 ″Table1″'将表中的数据添加到DataSet1中。

End Sub

添加一个Button1在Button1_Click中加入“SqlDataAdapter1.UpdateDataSet11 ″Table1″”代码。

Private Sub Button1_ClickByVal sender As System.Object ByVal e As System.EventArgs Handles Button1.Click

SqlDataAdapter1.UpdateDataSet11″Table1″' 完成数据库的添加、删除、修改功能。

End Sub

程序说明:其中SqlDataAdapter1.Fil语句是把表中具体的数据添入DataSet11后,而SqlDataAdapter1.Update是表示当完成对数据的修改后使用Update进行数据库的更新,使修改的数据生效。按“F5”运行程序,你就可以看见表中的数据都显示出来了,同时你可以随意对它们进行修改。如要删除数据,只要按下键盘上的“del”键即可。

例一中使用控件的简单介绍:

SqlDataAdapter:

建立数据库的连接,完成数据库的添加、删除、修改功能的配置。

SqlConnection:

建立连接字符为SqlCommand提供连接依据。

DataSet1:

加载表结构和表数据,以便在表格中显示具体数据。

SqlCommand:

用来执行对表的各种具体的操作。

例 二

这里为了让大家知道OLEDB和SQLClient在.Net中多么地接近,此例子将使用.Net中的OLEDB类。在这个程序中我们将使用ADO.Net中的OLEDB类和SQL语句来建立数据库、表。接着上例添加2个命令按钮,不修改任何属性,并再加入如下代码:

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

程序说明:在Button1_Click中可以看出连接对象的连接字符串和前面由系统自动生成的连接字符串不同。原因是我门要创建的新数据库jk 还并不存在,所以为了使连接数据库成功,并且有足够的权利来建立jk数据库,就必须通过以SQLServer管理员的身分连接一个SQL Server中已有的数据库,获得对整个SQL Server的访问控制权限,再建立jk数据库。这里连接的是Northwind数据库。而后面的的Button2_Click直接连接到jk数据库。因为我们要在jk数据库中建立表。

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

程序说明:程序中Button2_Click建立了两个表,kk和pp。其中kk包括一个种子列并且设定为主键。pp是一个一般的表。其实通过Button2_Click中所用的方法我们还可以建立数据库中的存储过程、约束等。其方法就是将OleDbCommand后的建立表的SQL语句换成存储过程、约束的SQL语句即可。由于SQL语句已经超出了本文的范围,所以这里不做讲解。

总 结

对于ADO.Net的编程来说除了要掌握ADO.Net的技术外,还必须掌握数据库的一些知识。本文只是编写了两个简单的数据库程序,其目的是让大家知道,ADO.Net的编程其实本身并不复杂。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有