ADO数据库编程(精选9篇)
ADO数据库编程 篇1
VB.NET是在VB6.0的基础上产生的一种完全面向对象的程序设计语言,能开发运行.NET平台上的应用程序。VB.NET具有友好的界面和强大的控件功能,能较好地开发数据库应用程序。VB.NET主要通过A-DO.NET(Active X Data Objects for the.NET Framework)实现数据访问,可以连接到Microsoft SQL Server、Oracle、ACCESS、XML等各种数据源,并检索、操作和更新数据[1]。在开发过程中,一般的做法是:首先用数据库管理系统(如Microsoft Access)创建数据库和表,然后在程序中利用ADO.NET对象与数据库建立连接,再利用Data Set对象将数据表与数据绑定控件如Data Grid View相绑定,进行检索、修改、更新等数据操作。如果要在程序运行过程中自由地创建自己的数据库和表以提高程序的灵活性,就要同时使用ADOX和ADO.NET技术。
1 ADO.NET与ADOX
在VB.NET中开发数据库程序要用到ADO.NET数据访问技术,ADO.NET是一个功能强大的数据访问接口,通过ADO.NET可以方便地访问数据库。它通过SQL Server和OLE DB两种不同的数据提供者可以访问各种不同的数据源。ADO.NET包含多个对象,它的结构如图1所示[2]。利用Connection、Command、Data Adapter和dataset对象,可以对数据库进行检索、修改、删除和更新等操作。Connection对象是所有数据库操作的前提;Command对象最主要的工作是通过Connection对象向数据源下达操作数据库的命令;Data Adapter对象是连接Data Set对象和数据源连接的桥梁,利用它的Select Command属性和fill方法可以将源数据填充到Data Set对象,利用它的Insert Command、Update Command、Delecte Command属性及update方法可更新数据源;Data Set对象是一个断开的记录集合,从数据源中建立Data Set对象后,它就和数据源完全断开。
如果要在程序中动态创建数据库和表,就需要引用“Microsoft ADO Ext.2.8 for DDL and Security”对象库,简称ADOX,其库文件名为Msadox.dll。ADOX是核心ADO对象的扩展库,可用于创建、修改和删除模式对象,如表格和过程还可用于维护用户和组,以及授予和撤消对象的权限[3]。
ADOX的对象描述如表1所示。ADOX常用方法有:Append(包括Columns,Groups,Indexes,Keys,Procedures,Tables,Users,Views对象),Create(创建新的目录),Delete(删除集合中的对象)和Refresh(更新集合中的对象)等等。
2 ADO.NET和ADOX在VB.NET数据库中的应用
2.1 在原有数据库上产生新表
如果仅仅是从已有数据表中产生新表,可写一条“select…into”SQL语句,再利用command对象的Execute Non Query方法即可实现。例如,在学生成绩管理系统中,有一个名为student的数据库,数据库中有一个名为“成绩表”的数据表,该数据表中有学号、姓名、性别、年龄、班级、语文、数学、外语等多个字段,这个表已有多条记录。现在把数学成绩大于等于90分的记录筛选出来构成一个新表,该表中只有三个字段:学号、姓名、数学。新表的名称由对话框输入。在窗体上放置一个命令按钮button1,编写它的click事件:
这种方法是在已有Access数据库上建立一个新表,通过OLE DB.NET数据提供程序与数据库相连,因此须在应用程序中添加System.Data.Ole Db命名空间。
2.2 动态创建新的数据库和表
如果要在程序中动态生成Access数据库和表,就要用到Microsoft ADO Ext.2.8 for DDL and Security对象库。
例如,在开发实验设备管理系统,需要在程序运行过程中创建一个数据库,数据库的名称由用户输入。然后在数据库中建立一个“设备档案”数据表,数据表中有3个字段,“设备编号”(字符型,宽度为8)、“设备名称”(字符型,宽度为20)、“购买日期”(日期型)。最后将数据表显示在Data Grid View1控件上,在Data GridView1控件中用户可任意添加、修改和删除记录。
首先新建一个Windows项目,通过“项目”菜单打开“添加引用”对话框,在COM标签中选中Microsoft ADO Ext.2.8 for DDL and Security组件。然后在程序中添加命名空间和公共变量:
为了更灵活地创建数据库,在窗体form1上放置一个Data Grid View1控件、一个Save File Dialog1控件和两个Button控件(名称分别为“创建数据库表”、“更新数据表”)。编写“创建数据库表”按钮的click事件,主要代码如下:
这里需要说明的是,在Button1_Click事件中只是设置了Save File Dialog1控件的有关属性,并调用了该控件的Show Dialog方法,而保存对话框打开后,按用户输入的文件名创建数据库表等操作应放到Save File Dialog1控件的File Ok事件中。代码如下:
程序运行后,单击Button1按钮就可创建用户所需的数据库了。如果在运行过程中用户要保存在DataGrid View1控件中所添加、删除、修改的记录,并将记录更新到数据库表中,则需单击“更新数据表”按钮,它的click事件主要代码如下:
本例通过Ole Db Command Builder对象自动生成数据适配器的Insert Command、Update Command和Delecte Command,将在数据集所做的数据变更写回数据源。也可根据程序实例把完整的插入、更新和删除的SQL语句赋给他们。显而易见,本例中的自动生成方法更快捷方便。
3 结论
利用VB.NET开发数据库程序时,如果只是从原表中产生新表,则只要使用ADO.NET中的Command对象及其Execute Non Query方法即可实现;如果要动态创建数据库和表,则需要结合ADOX对象的Create和Append方法实现。作者在利用VB.NET开发数据库应用程序中多次使用该方法,它提高了编程的灵活性和满足了特殊用户的需求,具有较好的实用价值。利用C#或ASP.NET开发数据库程序时,已可参照该实例动态创建数据库和表。
参考文献
[1]魏峥,王军,崔同庸.ADO.NET程序设计教程与实验[M].北京:清华大学出版社,2007.
[2]郑阿奇,彭作民.Visual Basic.NET程序设计教程[M].北京:机械工业出版社,2006.
[3]harryxlb.ADOX简介[EB/OL].http://hi.baidu.com/harryxlb,2007-9-2.
ADO数据库编程 篇2
1 Connection
1.1 Pooling
在Web Application中,常常会出现同时有很多用户同时访问数据库的情况,而且ASP中的对象作用域是页面级的,也就是
说,每个页面都要联接和断开数据库,岂不是会很慢?而且每个到SQL Server数据库的联接会带来37k的系统开销,怎么
办?
可能有人会想到用Application和Session来解决问题,但是,这是不可取的,如果用Application,那么会出现多个用户同时通过一个Connection访问数据库的情况,虽然节省了建立连接的时间,但是访问数据库的速度就会变得非常慢,如果用Session,出现的问题就是,Session超时怎么办?如果把Session.Timeout设得很大,那用户离开之后,连接还会保留一段时间,也会带来额外的开销。
其实根本不用考虑这个问题,通过OLE DB访问数据库,它会替你解决这个问题,OLE DB有一个Resource Pooling,它会代
理你的连接请求,然后把别人刚用过的连接给你接着用。(具体机制不再阐述,其实我也没搞太明白,嘻嘻)
1.2 Provider
可能没有多少人用过这个Property吧,它的缺省值是MSDASQL,还有MSIDXS和ADSDSOObject,但是在ADO2.0(见VS98)和
ADO2.1(见SQL7)里面提供了一些新的Provider:
MSDAORA (OLE DB Provider for Oracle)
Microsoft.Jet.OLEDB.3.51(OLE DB Provider for Microsoft Jet( for ACCESS))
SQLOLEDB(Microsoft SQL Server OLE DB Provider)
如果你所用的数据库是这些的话,用这些新的Provider就可以不通过ODBC而直接访问数据库,提高的效率就可想而知了。
2 Command
2.1 CommandType
缺省值是adCmdUnknown,ADO会逐个判断你的CommandType,直到它认为合适为止,不建议采用。(在Recordset.Open和
Connection.Execute的时候也可以用)
adCmdText是照原样执行你的SQL语句,但是如果你的SQL Language是以下几种的话,通过使用别的CommandType就可以提高
你的SQL语句执行效率
objCmd.Execute “Select * from table_name”, adCmdText可替换为objCmd.Execute “table_name”,adCmdTable
objCmd.Execute “Exec proceuure_name”,adCmdText可替换为objCmd.Execute “proceuure _name”, adCmdStoredProc
还有很重要的一点就是,如果你的SQL语句没有返回记录集,如insert和update等,那么使用adExecuteNoRecords
(ADO2.0)可以减低系统开销(可以加到adCmdText 和adCmdStoredProc上,如adCmdStoredProc + adExecuteNoRecords)
还有adCmdTableDirect和adCmdFile(ADO2.0),我还不太清楚怎么用,adCmdFile可用于访问一个XML文件,
2.2 Prepared
如果你需要重复的执行类似的SQL语句,那么你可以预编译你的SQL语句,提高的效率也很可观
objCmd.CommandText = “SELECT spell from TYPER.wordspell where word = ? ”
objCmd.Prepared = True
objCmd.Parameters.Append objCmd.CreateParameter(“word”, adVarChar, , 2)
For i = 1 To Len(strName)
strChar = Mid(strName, i, 1)
objCmd(“word”) = strChar
Set bjRS = objCmd.Execute
If objRS.EOF Then
strNamesame = strNamesame & strChar
Else
strNamesame = strNamesame & objRS(“spell”)
End If
Next 'i = 1 To Len(strName)
3 Recordset
3.1 LockType
缺省是adLockReadOnly,如果你不用修改数据,就不要改成adLockOptimistic之类的,否则也会减低速度和增加开销的
adLockReadOnly >adLockPessimistic >adLockOptimistic >adLockBatchOptimistic
3.2 CursorType
缺省是adOpenForwardOnly,如果你只用MoveNext Method,也最好不要改,速度影响140%左右
adOpenForwardOnly >adOpenDynamic >adOpenKeyset >adOpenStatic
3.3 CursorLocation
缺省是adUseServer,其实不好,它可以随时反映数据库服务器上的改动,但是系统开销很大,而且需要维持和数据库服务
器的连接,但是在数据库服务器和Web Server在一起的时候要快些。不过在adLockOptimistic的时候使我无法使用
RecordCount等Property。
使用用adUseClient的话,你可以对数据做再排序,筛选,shape等操作
如果对数据的实时性没有要求的话,尽量用adUseClient
4 其它
4.1 Early bind
用ASP这一点就不用看了,如果用VB的话
Dim objConn As ADODB.Connection 比 Set bjConn = CreateObject(“ADODB.Connection”)要好
4.2 ADO 2.1里的shape真是好玩
4.3 ADO 2.1可以用objRS.Fields.Append来建立一个Recordset
ADO数据库编程 篇3
前端开发工具+后台数据库是许多应用程序采用的开发模式。前端开发工具的优势在于其良好的应用程序界面设计能力,而后台数据库具有强大的数据管理功能,提供后台的数据支持。Visual Basic (VB) 即是近年来被普遍采用的前端开发工具之一,VB提供了丰富的数据库访问接口,加上其可视化、面向对象、采用事件驱动方式的特点,使其受到广大程序开发人员的喜爱,并被大中专院校选为计算机及相关专业的必修课。
2. Visual Basic数据库访问技术概述
在VB数据库编程中如何将后台数据与应用程序窗体中的数据绑定控件连接起来呢?VB提供了三类数据访问接口。
2.1 DAO (Data Access Objects)接口技术。
DAO是Microsoft推出的第一个基于面向对象技术的数据库访问技术,DAO采用Jet引擎和ODBC两种方式访问数据库。
2.2 RDO (Remote Data Objects)技术。
RDO是建立在ODBC基础上的面向对象的数据访问技术,即一般采用ODBC方式访问数据库。
2.3 ADO (ActiveX Data Object)技术。
ADO是微软在DAO、RDO之后提出的新一代数据库应用程序开发接口,是建立在OLEDB上的高层数据库访问技术。OLE DB是一个低层的基于COM的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可以访问各种数据源。ADO封装了OLEDB所提供的接口,ADO对象可以使用户通过OLE DB Provider访问和操纵数据库服务器中的数据。ADO可以实现对关系型数据库和非关系型数据库的访问,与DAO、RDO相比,ADO具有较少的对象、更多的属性、方法和事件实现对各种数据源的访问,因此ADO技术目前成为VB数据库应用的主流技术,我们将重点介绍该技术。
VB中ADO技术访问数据库具体有两种途径,即ADO控件(实际为ADO对象封装而成)和ADO对象两种方法访问数据库。
ADO控件使用简便,用户只需编写很少的代码,就可实现数据的添加、修改、删除等操作,比较适合于初学者或小型的数据库应用程序,但灵活性较差。而ADO对象功能非常强大,适合于熟练的用户或较为复杂的应用程序。
3. ADO控件数据库编程
3.1 ADO控件实现数据库编程的一般步骤。
3.1.1 添加ADO控件到时VB工具箱。
由于ADO控件是ActiveX控件,使用时就首先添加到VB工具箱中。方法为:选择“工程/部件”命令,在部件对话框中,选中Microsoft ADO DATA Control 6.0 (OLEDB)复选框,然后确定即可。
3.1.2
在应用程序窗体中添加ADO控件和数据绑定控件(常用的数据绑定控件有TextBox、CheckBox、DataGrid、MSH-FlexGrid等)。
3.1.3 用ADO控件连接数据源。
方法是:右单击ADO控件,选“属性”命令,打开“属性页”对话框进行相应设置连接数据源。具体连接方式有三。
>使用Data Link文件连接:该方式表示采用一个ODBC文件数据源连接文件完成,要求事先在控制面板中应创建好文件数据源(文件DSN)。
>使用ODBC数据资源名称:此方式表示连接至一个ODBC用户数据源,要求事先在控制面板中创建好用户数据源(用户DSN),使用时直接在ADO控件“属性页”ODBC数据资源名称下拉列表中选择该数据源即可。
>使用连接字符串:这是最灵活也是最常用的方式,单击“生成”按钮,按照提示依次选择“OLE DB提供程序”、“选择输入数据库名称”,然后单击“记录源”选项卡,设置命令类型,命令类型告诉提供者Source属性是一条SQL语句(adCmdText)、一个表的名称(adCmdTable)、一个存储过程 (adCmdStoreProc) 还是一个未知类型 (adCmdUnknown) 。
使用连接字符串的方法,除上述做法外也可直接在Form_Load () 事件代码中通过ADO控件的ConnectionString属性、RecordSource属性、Refresh属性实现数据源连接。强烈建议较熟练用户采用本方法,实际代码可参照如下:
3.1.4 设置数据绑定控件的DataSource、DataField等属性,将数据表与相应的数据显示控件进行绑定。
例如窗体中有文本框控件Text1,如要和数据表中字段绑定,则应设置DataSource属性值为“Adodc1”, DataField属性的值应设置为相应数据表的字段名。
3.1.5 编写事件代码。
为控件编写实现相关功能的代码。
3.2 ADO控件编程中增、删、改、查的实现。
3.2.1 记录的增加。
当在窗体中单击增加按钮时添加记录,在窗体数据绑定控件中输入记录内容后,单击保存按钮保存。实现此功能则在增加按钮的Click事件代码中的关键语句为:Adodc1.Recordset.AddNew,该语句调用AddNew方法在记录集中添加一条新记录,并且该记录成为当前记录,然后在数据绑定控件中输入相关数据。而在保存按钮的Click事件代码中的关键语句为:Adodc1.Recordset.Update,该语句调用Update方法用新输入的记录值更新当前记录至相应的数据库表中,即可完成数据的修改。
3.2.2 记录的删除。
单击删除按钮删除当前记录。实现此功能的关键代码为:Adodc 1.Recordset.Delete、Adodc 1.Refresh。
3.2.3 记录的修改。
实现此功能的关键代码为:Adodc 1.Recordset.Edit。
3.2.4 记录的查询。
查询可通过设置ADO控件的RecordSource属性来完成。关键代码一般格式为:Adodc 1.RecordSource="Select*from表名Where查询条件"、Adodc 1.Refresh。
4. ADO对象数据库编程
4.1 ADO对象简介。
ADO模型中共有7个对象,分别为连接对象Connection、记录集对象Recordset、命令对象Command、参数对象Parameter、域对象Field、属性对象Property和错误对象Error。其中Connection、Recordset、Command是最常用的三大对象,下面仅对这三大对象作以介绍。
4.1.1 Connection对象用于建立与数据库的连接,通过连接可从应用程序访问数据源。
主要包括打开连接(Open方法)、关闭连接(Close方法)及运行SQL命令等,连接是访问数据源的前提条件。其常用重要属性为ConnectionString、ConnectTimeout等。
4.1.2 Recordset对象用于管理来自基本表或SQL查询语句执行结果的记录集,以及记录中的游标。
Recordset对象所指的当前记录均为记录集中的单个记录,ADO对象编程中数据的添加、删除、修改、查询主要就是通过Recordset对象来实现的。其常用重要属性有Source、BOF、EOF、CursorType、LockType、Filter、PageCount、RecordCount等,重要的方法有Open、Close、AddNew、Update、Delete。
4.1.3 Command对象用于指定将要对数据源执行的命令。
在建立Connection对象后,可以发出命令操作数据源以获取数据。Command对象通过Execute方法执行命令。一般情况下使用Command对象可以在数据源中实现添加、删除、更新、检索数据。其常用重要属性有ActiveConnection、CommandText、CommandTimeout、CommandType等。
4.1.4 Parameter对象用于管理基于参数化查询或存储过程的Command对象相关联的参数或自变量。
可用于指定参数的名称、值、类型、属性等。
4.1.5
Field对象对应于Recordset对象的一列,可用于访问字段的相关属性,Field对象从属于Recordset对象,即只能从中访问Field对象。
4.1.6
Property对象代表由提供者定义的ADO对象的动态特性。
4.1.7 Error对象包含了访问数据源时所返回的错误的详细信息。
使用ADO访问数据源时,一旦有错误发生将会生成一个或多个Error对象,利用Error的Desciption属性、Number属性、Source属性可获得错误的相关信息。
4.2 ADO对象编程的一般步骤及要点
4.2.1
启动VB6.0, 建立新工程。
4.2.2 引用ADO对象。
在VB菜单中选择“工程”/“引用”命令,在“引用”对话框中选中“Microsoft ActiveX Data Objects2.8Library”,引用之后就可在工程中使用ADO对象了。
4.2.3 在程序中声明ADO对象。
VB中使用对象变量时应先声明,一般格式为:Dim variable As[New]classVariable—对象变量名。ClassVariable指对象所属的类型,New是可选关键字,用于在程序运行时创建新对象,如无New关键字,则只声明变量而不会创建对象,如果要创建则需用SET语句完成。声明ADO对象常用格式如下:
4.2.4 连接数据源
连接数据源应用的方法是Connection对象的Open方法。
一般格式为:
Connection对象.Open ConnectionString, UserID, Pass-Word, OpenOptions
其中:ConnectionString为可选项,包含了连接的数据库的信息;UserID可选项,包含建立连接的用户名;PassWord为可选项,包含建立连接的用户密码;OpenOptions为可选项,假如设置为dConnectAsync,则连接将异步打开.
例如:
mycnn.Open"Provider=VFPOLEDB.1;Data Source="&App.Path建立到数据库的连接
4.2.5 打开记录集对象。
记录集是从数据库取回的一个查询结果集,所以查询即是通过打开记录集实现的。常用的打开Recordset方法有三种。
4.2.5. 1 使用Recordset对象的Open方法
一般格式:
例如:
4.2.5. 2 使用Connection对象的Execute方法
一般格式:
例如:
4.2.5. 3 使用用Command对象的Execute方法
使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.
例如:
4.2.6 数据的添加、删除、更新要点。
添加数据记录利用Recordset对象的AddNew方法实现,例如:Rs.AddNew
删除数据记录利用Recordset对象的Delete方法实现,配合Filter属性可实现批量删除例如:Rs.Delete
数据发生改变后应及时使用Recordset对象的Update方法更新数据记录,如:Rs.Update
5. 结语
ADO数据库编程是微软推出的新一代数据库编程技术,是建立在OLEDB、ODBC等较为低层的数据库技术之上的应用层数据库编程接口,是对OLEDB的封装,采用面向对象的技术思想极大地提高了程序开发的效率。本文对ADO编程的特点及ADO编程的一般步骤和要点做了较为深入的探讨,以期对读者有所帮助,不妥之处,请批评指正。
参考文献
[1]刘彬彬等.Visual Basic程序设计标准教程:DVD视频教学版[M].北京:人民邮电出版社, 2009.
[2]高春艳等.学通Visual Basic的24堂课[M].北京:清华大学出版社, 2011.
[3]宋坤等.MFC程序开发参考大全[M].北京:人民邮电出版社, 2007.
ADO数据库编程 篇4
在MSDN中,.net的数据库连接字符串都有详细的说明,我这里以代码范例的方式罗列一些,具体的每一项代表的意义可以参看MSDN.
ADO.net 中数据库连接方式(微软提供)
微软提供了以下四种数据库连接方式:
System.Data.OleDb.OleDbConnection
System.Data.SqlClient.SqlConnection
System.Data.Odbc.OdbcConnection
System.Data.OracleClient.OracleConnection
下面我们以范例的方式,来依次说明:
System.Data.SqlClient.SqlConnection
常用的一些连接字符串(C#代码):
SqlConnection conn
= new SqlConnection( “Server=(local);Integrated Security=SSPI;database=Pubs”);
SqlConnection conn
= new SqlConnection(“server=(local)NetSDK;database=pubs;Integrated Security=SSPI”);
SqlConnection conn = new SqlConnection(
“Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;”);
SqlConnection conn = new SqlConnection(
“ data source=(local);initial catalog=xr;integrated security=SSPI;
persist security info=False;workstation id=XURUI;packet size=4096; ”);
SqlConnection myConn= new
System.Data.SqlClient.SqlConnection(“Persist Security Info=False;Integrated
Security=SSPI;database=northwind;server=mySQLServer”);
SqlConnection conn = new SqlConnection(
“ uid=sa;pwd=passwords;initial catalog=pubs;data source=127.0.0.1;Connect Timeout=900”);
更多字符串连接说明请看MSDN:
msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataSqlClientSqlConnectionClassConnectionStringTopic.asp
System.Data.OleDb.OleDbConnection
常用的一些连接字符串(C#代码):
OleDbConnection conn = new OleDbConnection(@“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:MyWeb81�5GrocerToGo.mdb”);
OleDbConnection conn = new OleDbConnection(
@“Provider=Microsoft.Jet.OLEDB.4.0;Password=;
User ID=Admin;Data Source=grocertogo.mdb;”);
OleDbConnection conn = new OleDbConnection(
“Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=yes”);
OleDbConnection conn = new OleDbConnection(
“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:inLocalAccess40.mdb”);
OleDbConnection conn = new OleDbConnection(
“Provider=SQLOLEDB;Data Source=MySQLServer;Integrated Security=SSPI”);
更多字符串连接说明请看MSDN:
msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataOleDbOleDbConnectionClassConnectionStringTopic.asp?frame=true
System.Data.OracleClient.OracleConnection
常用的一些连接字符串(C#代码):
OracleConnection myConn = new System.Data.OracleClient.OracleConnection(
“Data Source=Oracle8i;Integrated Security=yes”);
更多字符串连接说明请看MSDN:
msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataOracleClientOracleConnectionClassConnectionStringTopic.asp?frame=true
System.Data.Odbc.OdbcConnection
常用的一些连接字符串(C#代码):
OdbcConnection conn = new OdbcConnection(
“Driver={SQL Server};Server=MyServer;Trusted_Connection=yes;Database=Northwind;”);
OdbcConnection conn = new OdbcConnection(
“Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;
Persist Security Info=False;Trusted_Connection=yes”);
OdbcConnection conn = new OdbcConnection(
“Driver={Microsoft Access Driver (*.mdb)};DBQ=c:in wind.mdb”);
OdbcConnection conn = new OdbcConnection(
“Driver={Microsoft Excel Driver (*.xls)};DBQ=c:inook1.xls”);
OdbcConnection conn = new OdbcConnection(
“Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:in”);
OdbcConnection conn = new OdbcConnection(“DSN=dsnname”);
更多字符串连接说明请看MSDN:
msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataOdbcOdbcConnectionClassConnectionStringTopic.asp?frame=true
其他厂商提供的数据库连接:
DB2Connection myConn = new IBM.Data.DB2.DB2Connection(
“DATABASE = SAMPLE;UID=; PWD=
;”);
DB2Connection myConn = new IBM.Data.DB2.DB2Connection(“DATABASE = SAMPLE”);
BdpConnection myConn = new Borland.Data.Provider.BdpConnection(“assembly=Borl
and.Data.Mssql,Version=1.1.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b;ve
ndorclient=sqloledb.dll;osauthentication=False;database=;usernam
e=;hostname=;password=
;provider=MSSQL”);
BdpConnection myConn = new Borland.Data.Provider.BdpConnection(“assembly=Borl
and.Data.Db2,Version=1.1.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b;ve
ndorclient=db2cli.dll;database=;username=;
password=
;provider=DB2”);
Connection Pooling
在SQL Server、OLE DB和.NET框架结构中的Data Provider中,都提供了隐式的连接池连接支持,
ADO.net中数据库连接方式数据库教程
,
你可以在ConnectionString中指定不同的参数值控制连接池的行为。比如下面的例子使OLE DB的连接池无效并自动地进行事务处理:
Provider=SQLOLEDB;OLE DB Services=-4;Data Source=localhost;Integrated Security=SSPI;
在SQL Server.NET Data Provider中提供了以下参数设置控制连接池的行为:Connection Lifttime、Connection Reset、Enlist、Max Pool Size、Min Pool Size和Pooling。
更多数据库连接信息,以及非ADO.net的连接字符串可以参看:
www.connectionstrings.com/
ADO数据库编程 篇5
ASP.NET是Microsoft.NET平台下的一部分。它实现了Web应用程序的快速开发。其中连接数据库的主流技术是通过ADO.NET或ADO实现的。本文基于ASP.NET框架,介绍ADO和ADO.NET两种数据库访问技术,然后就进行分析和研究。
1 ADO技术简介
1.1 ADO技术
Active X Data Objects(ADO)是微软的一种数据访问技术。它被设计用来和数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Univer-sal Data Access)。OLE DB是一个低层的数据访问接口,并基于微软公司的COM技术,用它可以访问各种数据源,其模型如图1所示。ADO的3个主要组成对象是:Connection、Record Set和Command。
(1)Connection对象:用于表示和数据源的连接,以及处理一些命令和事物。
(2)Command对象:用于执行某些命令来进行诸如查询、修改数据库结构的操作,并将返回结果存在Recordset对象中。也可以进行批操作和操纵数据库的结构,当然,这需要使用的OLE DB Provider提供相应的支持。此外,可以将一个激活的Connection对象绑定到Command对象的Active Connection属性,这使得多个Command对象实例可以共用一个Connection对象。
(3)Record Set对象:用于处理数据源的表格集,它是在表中修改、检索数据的最主要的方法。这些结果由数据的行(记录)和列(字段)组成。
ADO的几个对象间的关系结构图如图2所示。
使用ADO访问数据元的特点可以概括如下:
(1)易于使用,可以说这是ADO最重要的特点之一。
(2)ADO是高层数据库访问技术,相对与ODBC来说,具有面向对象的特点。
(3)在ADO对象结构中,对象与对象之间的层次结构不是非常明显,这会给编写数据库程序带来更多的便利。比如,在应用程序中如果要使用记录集对象,不一定要先建立连接、回话对象,如果需要就可以直接构造记录集对象。
(4)可以访问多种数据源。和OLE DB一样,使应用程序具有很好的通用性和灵活性。
1.2 ASP.NET中使用ADO数据库访问技术
在ASP.NET中使用ADO时,首先要注意下面两点:
(2)为了在ASP.NET网页里调用、使用STA(Single Thread Apartment)的COM组件,程序必须在<%@Page...>前导指令加上aspcompat=”true”属性;其余便和ASP网页使用ADO一样。下面以一范例部分代码为示例。
2 ADO.NET技术简介
2.1 ADO.NET技术
ADO.NET是对ADO的继承,是一个用来存取数据和信息的API。它提供与OLE DB接口兼容的数据源的数据存取接口,应用程序可以使用ADO.NET连接到这些数据源来获取、操纵和更新数据;还提供SQLServer编程接口,对SQL Server数据库访问效率比OLE DB接口访问SQL Server数据库效率高。其模型如图3所示。ADO.NET的核心组件主要有三类,即Connection、Data Set和Command。另外还添加了许多新的对象和程序化接口,如:Data Adapter、Data View、Data Reader等等。
(1)Connection对象:Connection对象在应用程序和数据库之间建立连接。通过SQL Connection对象建立与SQL Server数据库的链接到支持ADO Managed Provider的数据来源。
(2)Command对象:是设置SQL命令、传递系统参数以及取得数据结果等,可以通过SQLCommand对象直接操作SQLServer数据库,通过OLEDB Command操作支持Managed Provider的数据来源。
(3)Data Set对象:Data Set不是一个Record Set,而是类似数据库(Data Base),在Data Set中可以包含任意数量的数据表(Data Table),且每个表对应一个数据库的数据表(Table)或视图(View)。
(4)Data Adapter对象:它是提供连接Data Set对象和数据源的桥梁,并且Data Adapter使用Command数据源中执行的SQL命令,以便将数据加载到Data Set中,并使对Data Set中数据的更改与数据源保持一致。
ADO.NET的几个对象间的关系结构如图4所示。
2.2 ADO.NET访问技术的应用程序示例
下面是一个简单的ADO.NET应用程序,它从数据源中的三个表中返回结果并将其输出到窗口的Data Grid中:
3 两种技术之比较
ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作应用程序,并且易于使用、速度快,内存支出低、占用磁盘空间较少,支持用于建立基于客户端/服务器和Web的应用程序的主要功能。但是,他们也具有以下四个方便的差异,而它们的差异,换句话说,也是ADO.NET的优点所在。
(1)缓存中数据集的存储形式。
ADO中数据是以Record Set形式存储,它的数据来源于多个表,但在内存中选择只能集中和显示在一个表中;ADO.NET中的数据集是Data Set,它在缓存中可以是一个或多个表的数据库。
(2)脱机与连机关系。
ADO.NET采用的是离线数据集(Disconnect Data Set),ADO.NET利用XML制作数据的一份副本(快照副本snapshot),它除了制作副本时在线,其他时间都是离线的。而ADO却是一直与服务器连着的在线型访问,数据访问代价比较大。
(3)标准化程度。
XML对ADO支持非常有限,而ADO.NET的设计包含了被广泛接受的XML标准,用户与Web信息共享及异构应用数据交换。
(4)传输性能。
传输性能方面ADO.NET更强。ADO基于COM技术,必须符合COM的规范,而ADO.NET基于XML数据格式,数据类型更为丰富,它不需要由COM编排而进行数据类型转换。另外防火墙通常配置只允许HTML文本通过,因为Data Set序列化格式是XML,所以防火墙可以允许Data Set通过,阻挡ADO的记录集。
4 结束语
ADO.NET是新型的Dot NET数据库访问技术接口,它支持工业技术标准,集合了所有用于数据处理的类。这些类代表了数据容器对象,它们以典型的数据库功能为特色,如索引、排序和浏览,且ADO.NET是Dot NET数据库应用程序最终的解决方案,它以整体设计为特色,而不是以数据库为核心的ADO模型。ADO.NET集成了ADO对象模型与OLE DB接口,图1和图3结合起来,可以体现这一点。所以,ADO.NET访问技术不仅在以上四个方面比ADO强,而且在功能上增进不少,尤其为Web应用程序的设计提供了一个更稳定、更具有扩展性的数据库存取技术,因此掌握ADO.NET技术具有更深远的意义。
参考文献
[1]陈志泊.ASP.NET数据库应用程序开发教程[M].北京:人民邮电出版社,2005:86-87.
[2]廖信彦.ASP.NET交互式Web数据库程序设计[M].北京:中国铁道出版社,2003:102-138.
ADO.NET数据库连接池研究 篇6
很多接触过J2EE平台的开发人员,都知道数据库连接池的重要性。由于J2EE的开放性,数据库连接池有很多实现方式,可以用第三方厂商的框架平台提供的连接池,也可以完全自己开发自定义的连接池。而刚转向.NET平台,掌握了连接数据库的基本方法后,首先要提出的问题就是:ADO.NET有没有数据库连接池功能?要不要自己开发?
.NET平台跟J2EE一样,提供了数据库连接池的功能,而且在程序中使用数据库连接时,隐式地使用到了数据库连接池。下面以SQL Server 2000数据库为例,通过编写一些测试程序来验证ADO.NET的连接池功能。
ADO.NET的连接隐式地使用到了连接池,什么样的连接会放在同一个连接池中呢?答案是连接字符串。连接到数据库,必须指定连接字符串,以便程序知道要连接的数据库种类、数据库名称、验证内容等。请看以下代码:
程序运行点击“打开连接”按钮后,文本框提示两个连接都打开了。可以在SQL Server 2000的查询分析器中运行存储过程sp_who查看连接情况,从查询结果中可以看到有两个使用“Northwind”数据库的进程。这就是在数据库端对应的两个连接。然后点击“关闭连接”按钮,在程序中执行以下部分代码:
程序文本框提示两个连接都已关闭,但是在查询分析器中发现执行sp_who后仍然存在两个使用“Northwind”数据库的进程,这就是数据库连接池起的作用。虽然显示地用代码关闭了连接,但是由于连接池的管理,真正的连接并没有释放,而是将连接放回了池中,以便后面的代码使用。
再次点击“打开连接”按钮,执行代码片断1的功能,文本框提示两个连接重新打开,通过执行sp_who存储过程可知,数据库服务器端还是两个使用“Northwind”数据库的进程,并没有在原来两个进程的基础上,再生成两个新的连接进程变成四个的情况,这种效果也是连接池作用的结果。第二次执行打开连接的代码后,重新生成的连接对象并不是真正的重新创建了和数据库的连接,而是从数据库连接池中取出了现有空闲的连接,再次复用。同理,再次点击“关闭连接”按钮,又一次执行代码片断2的功能,文本框提示两个连接关闭。通过执行sp_who存储过程可知,数据库服务器仍然保持两个连接进程。在客户端程序中,连接对象又放回了连接池备用,没有真正释放。
最后,退出客户端程序,由于程序资源的全部释放,连接池也自动删除,这时再从查询分析器执行sp_who过程,就再也看不到使用“Northwind”数据库的进程了。
通过以上测试程序,可以分析,当使用相同连接字符串创建数据连接时,系统首先检查使用相同连接字符串的连接池内有没有空闲连接,如果有,就取出现成的连接直接使用;如果没有,才真正创建一个新的连接。在连接使用完并且关闭后,连接也不会真正立刻释放,而是放回了池中,以备下一个连接对象取用。所以,连接池的使用不仅能够充分利用现有连接,提高性能,而且可以在连接池没有可用的空闲连接时,重新生成一个新的连接来响应程序的请求。为充分理解这个功能,再用以下代码来进行调试,并在函数第一行代码处设置断点:
单步执行代码,当代码执行完c1对象的创建后,服务器并没有使用“Northwind”的连接进程出现;当c1对象Open以后,经查询,可以看见已经有一个连接进程;当c1对象Close以后,通过查询分析器可见连接进程仍然存在,因为连接放回了池中备用,没有被删除;当c2对象Open后,其实取的是c1刚才创建的连接,所以查询分析器还是显示只有一个连接进程;当c3对象创建并打开后,由于刚才空闲的连接已经给c2用了,而c2仍没关闭,所以c3生成的是新的连接。因此,最后查询的连接进程是两个。
通过以上程序可以分析,在连接使用完毕后,应该及时关闭。否则其他代码请求连接时,没有空闲连接可用,就会重新生成新的连接,这样连接的复用率就比较低。当连接数达到最大值时(默认是100),下一个请求就只能等待,这样会给程序造成延迟响应,如果在等待期间仍没有空闲连接可用,那么超过最大值的连接请求就会因为超时而失败,这种情况比较容易出现在B/S的程序中。解决方法就是在条件允许的情况下,适当加大连接池的最大值(当然,这比较耗资源);同时在连接使用过程中,尽量少占用连接资源,把查询量缩小,并及时关闭放回连接池,增加复用的机会。
虽然通过连接池可以提升数据库应用程序的性能,提高连接的利用率,但不是所有场合都适合使用连接池。把代码1和代码2组成的程序发布成exe文件,然后启动程序,先后点击“打开连接”和“关闭连接”按钮,然后使用查询分析器查看连接进程,可以看见客户端连接关闭后,服务器仍然保留了两个连接进程。在不关闭现有程序的前提下,再次运行同样的Exe程序,生成第二个程序实例,按第一个程序的步骤先打开连接再关闭,然后在查询分析器中查看,可以发现服务器出现了4个连接进程。同理,运行第三个同样的程序实例,按同样步骤操作,可以发现服务器又多出两个连接,变成了6个。因此可以推论,如果相同的程序再多运行几次,服务器的连接进程将会成倍增加。如果程序实例较多,很快就会出现大量的连接进程,这将耗费很多服务器的资源,造成性能下降的结果。
由此可见,数据库连接池只能在一个程序实例中管理,不同实例的程序,各自管理自己的连接池,虽然连接字符串一样,也不能共享连接资源。当所有程序访问同一个数据库时,将大大消耗服务器的连接资源。这种情况比较容易出现在传统C/S的两层架构的程序中,当客户端数量比较大时,容易导致数据库连接资源的浪费。解决这个问题的方法如下:
(1)是把两层架构增加为3层,开发一个应用程序服务器(中间层),用来调度所有客户端程序的连接请求,不过增加了开发难度;
(2)把程序改成B/S模式的web应用程序,但是大家也清楚做Web网页一般还要再请个美工;
(3)简单的把连接池功能禁用,虽然在创建连接时要费点时间,但是用后马上释放,能够保证在客户端数量较大时不容易浪费服务器连接资源。禁用连接池只要在连接字符串中加上“Pooling=false”即可,请看以下代码:
将程序生成exe文件运行,执行“打开连接”功能后,发现有3个连接进程,但执行“关闭连接”功能后,由于禁用了连接池,连接将会真正释放,所以在服务器中可以发现连接进程全部没有了。在不关闭第一个程序的情况下,再次执行同样的程序,生成第2个实例,可以发现效果完全一样。只要在程序中尽快关闭连接,即使客户端数量较多,数据库服务器也不会产生大量无用的连接进程。
VB数据库中ADO访问技术研究 篇7
数据库技术自20世纪40年代产生以来演绎至今, 在技术上已比较成熟, 作为前端访问数据库的开发工具和环境, 至今仍在不断地完善和发展, 如De Phi、Power Builder、C++等, 而Visual Basic凭借其面向对象的事件驱动编程方式、丰富的控件功能以及可视化的编程环境, 成为数据库编程的一种优秀的开发工具, 被广大程序设计者所青睐。同时, VB在数据库方面也具有的强大功能, 通过提供的各种方便、强大的技术, 协助设计人员轻松地连接数据库, 并访问数据库, 从而提高了程序的可重用性和可维护性, 使得它经常被用在客户/服务器体系结构应用程序的开发中, 开发管理信息系统软件。
1 ADO技术简介
随着网络技术和数据库技术的不断发展, 现在的应用系统对数据集成的要求越来越高, 这些数据可能分布在不同的地方, 并且使用不同的格式, 例如关系型数据库和操作系统中的文件、电子表格、电子邮件、多媒体数据以及目录服务信息。传统的解决方案是使用大型的数据库系统, 把所有这些数据都移到数据库系统中, 然后按照操作数据库的办法对这些数据进行访问。这样做虽然能够按统一的方式对数据进行各种操作, 但这种间接方式带来了很多问题, 比如数据更新不及时、空间资源的冗余和访问效率低等。ADO (Active X Data Object) 是DAO、RDO的替代产品, 提供了许多更加方便实用的新功能。ADO扩展了DAO和RDO所使用的对象模型, 这意味着它包含较少的对象、更多的属性、方法 (参数) 以及事件。作为最新的数据库访问模式, ADO的使用简单易行, 是当前数据库开发的主流。ADO是连接应用程序和OLEDB的桥梁, 它提供的编程模型可以完成所有的访问和更新数据源的操作, ADO涉及的数据存储有DSN (数据源名称) 、ODBC (开放式数据连接) 以及OLE DB等3种方式。
2 ADO对数据源的操作和使用的对象
2.1 ADO对数据源的操作
ADO得到了程序设计语言的支持, 包括:Visual C++、VB-Script、Visual J++、Visual Basic等。ADO集中了DAO和RDO的优点而且不像DAO和RDO那样严重依赖于对象层次。这就是说操纵和创建ADO对象更为容易, 因为它们可以直接创建和管理。ADO支持的特征有:成批更新、所有类型的游标、服务器端存储过程、返回多个记录集的查询和查询目标等。ADO的目标是访问、编辑和更新数据源, 而编程模型体现了为完成该目标所必须的系列动作的顺序。使用ADO对数据源进行操作的步骤顺序与结构体系如图1。
2.2 ADO使用的对象
使用ADO对数据源进行使用的对象有: (1) Command对象:包含关于某个命令。Command对象在功能上和RDO的rdo Query对象相似; (2) Connection对象:包含关于某个数据提供程序的信息。Connection对象在功能上和RDO的rdo Cormection对象是相似的, 并且包含了关于结构描述的信息。它还包含某些~3OEnvironment对象的功能, 例如transaction控件; (3) Error对象:包含数据提供程序出错时的扩展信息。Error对象在功能上和RDO的rdo Error对象相似; (4) Field对象:包含记录集中数据的某单个列的信息。Field对象在功能上和RDO的rdo Column对象相似; (5) Parameter对象:包含参数化的Command对象的某单个参数的信息。该Command对象有一个包含其所有Parameter对象的Parameters集合。Parameter对象在功能上和RDO的rdo Parameter对象相似; (6) Property对象:包含某个ADO对象的提供程序定义的特征。没有任何等同于该对象的RDO, 但DAO有一个相似的对象; (7) Reeordset对象:用来存储数据操作返回的记录集。此对象和Connection对象是所有对象最重要的两个。对象的具体结构体系如图2。
3 使用ADO编程模型的一般步骤与实例
3.1 一般步骤
3.1.1 声明ADO变量
3.1.2 与数据库建立连接
为了保证数据库应用程序移植到其他计算机上仍可正常使用, 应将前工程与数据库文件保存在同一目录, 并进行以下初始化处理。
Dim My Path As String用于存放路径
My Path=App.path取本工程所在路径
如果不是根目录, 路径后加""。
然后建立与数据库的连接。If Right$ (My Path, 1) <>""The My Path=My Path&""
Cnn.Provider=Microsoft.Jet.OLEDB.4.0指定提供者
Cnn.Connection String Data Source=&My Path&"数据库文件名"指定数据库
Cnn.oen与数据库建立连接
3.1.3 设置记录集相关属性
设置记录集的锁定类型 (Lock Type) 、游标类型 (Cursor Type) 、使用的连接对象 (Active Connection) 和记录源 (Source) 。
rs.Lock Type=ad Lock Optimestic锁定类型
rs.Cursor Type=ad Open Keyset游标类型:键值游标, 允许在记录集中进行所有类型的移动
Set rs.Active Connection=cnn设置记录集使用的连接对象为打开的Connection对象
Rs.Source=SELECT-*-FROM表名设置记录集的记录源
3.1.4 打开记录集
If rs.State=ad State Closed Then rs.open
3.1.5 对记录集进行操作
例如:rs.Move First指针移动记录首
3.1.6 ADO对象的关闭和释放
调用Close方法关闭Connect或Recordset对象。例如:
如果要将对象从内存删除可将对象设置为Nothing。例如:
3.2 VB与SQLSERVER数据库的连接
(1) 在连接数据库前, 首先要在VB菜单“工程”-“引用”中选择microsoft active X Data objects 2.6 library和microsoft active XData objects recordset2.6 2个组件, 这是在连接数据前所必做的工作。
(2) 接下来定义ADO的连接对象, 如下所示:
(3) 有源连接
通过以上分析, ADO技术具有明显的优势, 随着ADO技术性能的不断增强, DAO、RDO作用将逐步淡化。可以说, ADO是今后开发数据库应用系统的首选。
参考文献
[1]张立科.Visual Basic6.0程序设计参考手册[M].北京:人民邮电出版社, 2003.
[2]黄淼云, 张学忠.Visual Basic软件高手[M].北京:希望电子出版社, 2001.
[3]李存斌.VisualBasic高级编程及其项目应用开发[M].北京:中国水利水电出版社, 2003.
[4]王新民, 张彦玲.VisualBasic程序设计与数据库应用[M].北京:电子工业出版社, 2003.
[5]李寿兵.ADO数据存取技术[J].微型电脑应用, 2000 (6) .
[6]于英.Visual Basic6.0数据库开发与专业应用[M].北京:国防工业出版社, 2002.
ADO数据库编程 篇8
关键词:ConnectionPtr,RecordsetPtr,CommandPtr
1、引言
在利用V C访问数据库技术中, 常见的有O D B C、D A O、R D O、OLE DB、ADO。其中, ADO是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是Microsoft为最新和最强大的数据访问范例OLE DB而设计的, 具有强大的数据处理功能和一个简单且便于使用的应用程序层接口, 因而得到了广泛的应用。
现在介绍A D O各种应用的文章和书籍有很多, 本文通过对这些书籍提到的方法进行总结与比较, 择出了最优最简的A D O访问数据库方法。
2、ADO访问数据库方法简介
使用V C++通过A D O访问数据库可以通过3种指针来实现:_ConnectionPtr、_RecordsetPtr和_CommandPtr, 这三种指针均可以通过直接调用SQL语句实现对数据库的操作, 具体调用方法这里不再重复。下面笔者分别用这三种指针对数据库中的表进行操作, 比对三种方法的效率。
3、测试环境创建
笔者在SQL Server数据库中, VS2008环境下编程实现三种接口访问数据库的功能。在数据库中创建一个数据表, 包含4种数据类型:日期型 (datatime) 、浮点型 (float) 、整型 (int) , 字符串型 (varchar) 。分别用3种接口方式做添加数据和提取数据的实验, 主要代码如下:
假如要调用的SQL语句分别为:
CString SQL_In=“INSERT into表名values (日期型参数, 浮点型参数, 整型参数, 字符串型参数) ”;//添加数据
SQL_Out=“select*from表名where字段名=字段值”;//提取数据
(1) 通过_RecordsetPtr实现添加数据记录, 代码如下:
4、数据库访问实验结果
采用上述三种接口分别调用SQL的“INSERT”语句进行5万条记录和50万条记录的5次入库操作, 得到的时间均值如下表所示。
采用上述三种接口分别调用SQL的“select”语句进行50万条记录的数据提取, 得到的时间如下表所示。
从上述实验记录的时间可以看出, 无论是增加数据还是提取数据, _ConnectionPtr接口的效率远远大于其他两种, 因此, 建议采用_ConnectionPtr接口, 但如果想对数据库进行高级操作, 建议采用_Recordset Ptr接口。
5、结语
本文通过理论研究和程序的实际应用与验证, 描述了通过ADO访问数据库的3种关键技术优略, 并综合分析了最优技术的选择方式。
参考文献
[1]李涛等.Visual C++SQL Server数据库开发与实例.清华大学出版社.
ADO数据库编程 篇9
关键词:C#数据库访问,移植性
ADO.NET是Microsoft公司在.Net平台下提出的新的数据访问模型。ADO.NET结构图如图1。在ANO.NET2.0中,可以使用多种.NET Framework数据库提供程序来访问数据源。数据提供程序有:1)SQL Server.NET Framework;2)Oracle.NET Framework;3)OLE DB.NET Framework;4)ODBC.NET Framework。该文针对SQL Server.NET Framework的访问模式做进一步的探讨。
1 模式描述
按照ADO.NET提供的访问模式,常用的做法是第一步建立Connection对象,建立Connection对象常用的方式是将本地计算机名,用户名,密码等以字符串的方式进行描述;第二步创建Command对象的字符串,例如查询方式,查询内容等。第三步则是打开连接,执行命令即可。这种做法能解决实际问题,但是系统的移植性很差,修改起来不方便。因此为了解决这种问题,设计了一种方便移植性数据库访问方式。
1.1 配置app.config文件
针对Connection对象所建立的数据库的连接语句,采用配置文件来处理。设置数据库的连接属性。方法如下:
在程序设计中,利用ADO.NET提供的configuration类来读取。采用System.Configuration.ConfigurationSettings.AppSettings["字符串名"]获得相关数据库的参数。从而提高系统的可读可修改性。
1.2 设计通用访问接口
从代码的独立性考虑,对于数据库的访问,采用单独的类来进行描述,有利用提高代码的重用性和可维护性。由于ADO.NET对于SQL的查询语句采用SqlCommand类进行描述,同时提供了三种执行方式,针对这三种执行方式,设计相关的通用类。方法如下:
1.2.1 不带返回结果集的SQL语句,设计转换接口
1.2.2 返回SQL语句第1行第1列的语句,设计转换接口
1.2.3 返回SQL语句的结果集
以上方式是在调用原有的数据库访问API上进行封装,然后利用ADO.NET提供的数据库访问方式连接数据库,再调用相应的API。若以后需要进一步的加强数据库功能时,只需在该类的基础上封装所需的方法即可。
2 结论
本文针对SQL数据库的操作方式中出现的字符串容易出错的问题,采用面向对象的程序设计思想,设计了相关的访问模式,实践证明,这种方式行之有效。
参考文献
[1]马骏.c#网络应用编程基础[M].北京:人民邮电出版社,2006.
【ADO数据库编程】推荐阅读:
ADO 编程模型详细资料数据库教程05-13
ADO访问数据库09-25
ADO数据库访问技术09-04
ADO数据控件10-10
数据编程申请09-19
SQL数据库编程学习应用语句07-18
网络数据库讲稿(客户端开发编程)10-17
大数据时代数据库技术09-10
数据库07-16
基于关系数据库的地籍空间数据存储结构07-18