ASP数据库连接
- 格式:docx
- 大小:181.11 KB
- 文档页数:11
用ASP连接数据库的几种方法用ASP连接DBF、DBC、MDB、Excel、SQL Server型数据库的方法:一、ASP的对象存取数据库方法在ASP中,用来存取数据库的对象统称ADO〔Active Data Objects〕,主要含有三种对象:Connection、Recordset 、CommandConnection:负责打开或连接数据Recordset:负责存取数据表Command:负责对数据库执行行动查询命令二、连接各数据库的驱动程序连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。
驱动程序适用数据库类型Microsoft.Jet.OLEDB.4.0 MdbMicrosoft Access Driver AccessMicrosoft dBase Driver DbaseMicrosoft Excel Driver ExcelMicrosoft Visual FoxPro Driver DbcSQLOLEDB.1 SQL srver7.0而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:dim connset conn = server.createobject("adodb.connection")conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " &server.mappath("../db/bbs.mdb")其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:dim connset conn = server.createobject("adodb.connection")conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.map path("bbs.mdb")有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了ASP连接数据库的5种方法第一种 - 这种方法用在ACCESS中最多strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _& Server.MapPath("aspfree.mdb")set conn = server.createobject("adodb.connection")conn.open strconn第二种-这种方法用在SQL SERVER中多strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1;" _ &"UID=LoginID;Password=;DATABASE=Database_Name"set conn = server.createobject("adodb.connection")conn.open strconn第三种strconn="Driver={Microsoft Access Driver(*.mdb)};" _&"DBQ=F:\Inetpub\wwwroot\somedir\db1.mdb;DefaultDir=" _&"f:\Inetpub\wwwroot\somedir;uid=LoginID;" _&"pwd=Password;DriverId=25;FIL=MSAccess;"set conn = server.createobject("adodb.connection")conn.open strconn第四种运用系统数据源The following uses a Data Source Name: Exampleset conn = server.createobject("adodb.connection")conn.open "Example"第五种运用ODBC数据源,前提是你必须在控制面板的ODBC中设置数据源set rs = server.createobject("adodb.recordset")rs.open "tblname", "DSNName", 3, 3 第一种 - 这种方法用在ACCESS中最多strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _& Server.MapPath("aspfree.mdb")set conn = server.createobject("adodb.connection")conn.open strconnASP访问数据库的方式有哪些?在ASP中可以通过三种方式访问数据库:1、IDC〔Internet Database Connector〕方式;2、ADO〔ActiveX Data Objects〕方式;3、RDS〔Remote Data Service〕方式。
ASP连接Access数据库几种常见方法在弹出来的“自定义连接字符串”对话框中,"连接名称"随便写一个。
“连接字符串”就要好好填写了。
当"使用此计算机上的驱动程序"时应用绝对路径:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\newgn\database\cnbruce.mdb否则“使用测试服务器上的驱动程序”采用Mappath转换路径:"Driver={Microsoft Access Driver (*.mdb)};DBQ="& server.mappath("/newgn/database/cnbruce.mdb")注:如果将要上传到网上去的页子就可以直接采用Mappath了点击“测试”,出现成功即爽。
附注:需要更多了解的,可以打开DW的帮助教程。
第一种连接和记录集分开声明<%db="db/darden.mdb"set conn=server.createobject("ADODB.connection")connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("" & db & "")conn.open connstr%><%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingconn.closeset conn=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")Response.Redirect "homepage.asp"%>第二种连接和记录集一同声明<%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"conn = "DBQ=" + server.mappath("book.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")%>ASP数据库简单*作教程<1>.数据库连接(用来单独编制连接文件conn.asp)<%Set conn = Server.CreateObject(ADODB.Connection)conn.Open DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= & Server.MapPath(\bbs\db1\user.mdb)%>(用来连接bbs\db1\目录下的user.mdb数据库)<2>显示数据库记录原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录如果是从头到尾:用循环并判断指针是否到末使用: not rs.eof如果是从尾到头:用循环并判断指针是否到开始使用:not rs.bof <!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.movefirst ---->(将指针移到第一条记录)while not rs.eof ---->(判断指针是否到末尾)response.write(rs(name)) ---->(显示数据表message中的name字段)rs.movenext ---->(将指针移动到下一条记录)wend ---->(循环结束)------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%>其中response对象是服务器向客户端浏览器发送的信息<3>增加数据库记录增加数据库记录用到rs.addnew,rs.update两个函数<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.addnew 新增加一条记录rs(name)=xx 将xx的值传给name字段rs.update 刷新数据库------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><4>删除一条记录删除数据库记录主要用到rs.delete,rs.update<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%dim namename=xxset rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)-------------------------------------------------------while not rs.eofif rs.(name)=name thenrs.deleters.update 查询数据表中的name字段的值是否等于变量name的值xx,如果符合就执行删除,else 否则继续查询,直到指针到末尾为止rs.movenextemd ifwend------------------------------------------------------------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><5>关于数据库的查询(a) 查询字段为字符型<%dim user,pass,qq,mail,messageuser=request.Form(user)pass=request.Form(pass)qq=request.Form(qq)mail=request.Form(mail)message=request.Form(message)if trim(user)&x=x or trim(pass)&x=x then (检测user值和pass 值是否为空,可以检测到空格)response.write(注册信息不能为空)elseset rs=server.CreateObject(adodb.recordset)sqlstr=select * from user where user='&user&' (查询user数据表中的user字段其中user字段为字符型)rs.open sqlstr,conn,1,3if rs.eof thenrs.addnewrs(user)=userrs(pass)=passrs(qq)=qqrs(mail)=mailrs(message)=messagers.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册重名)%>(b)查询字段为数字型<%dim numnum=request.Form(num)set rs=server.CreateObject(adodb.recordset)sqlstr=select * from message where id=&num (查询message 数据表中id字段的值是否与num相等,其中id为数字型) rs.open sqlstr,conn,1,3if not rs.eof thenrs.deleters.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除失败)。
/download/info /1701.htm/Program/Asp/112 TM562008.html<%dim ConnStringset conn=server.CreateObject("adodb.connection")ConnString="provider=microsoft.jet.oledb.4.0;data source=" & server.MapPath("#kucun.mdb") conn.open ConnString'连接数据库%>2000下使用asp访问数据库时,在conn.open始终发生8007007f错误,重装IIS和access均得不到解决。
我在网上查到的解决办法是将oledb32.dll 解压到以下两个目录,然后重启服务器:1) C:\WINNT\system32\dllCache2) C:\Program Files\Common Files\System\OLE DB<%dim conn,exec,rsset conn=server.createobject("adodb.connetion")conn.open "driver={microsoft access driver(*.mdb)};dbq="&server.mappath("show.mdb")exec="select * from list"set rs=server.createobject("adodb.recordset")rs.open,exec,conn,1,1%>ASP中连接数据库的错误解决新解决办法Provider 错误80004005 未指定的错误的新解决办法.这两天运行的好好的点击统计程序突然出错了,显示的就是:------------------------------------------Provider 错误80004005未指定的错误------------------------------------------在网上找了一大圈,发现大家提供的办法我都试过了,没有一个有作用的.方法有以下:1.开始运行regsvr32 jscript.dll (命令功能:修复Java动态链接库)开始运行regsvr32 vbscript.dll(命令功能:修复VB动态链接库)开始运行iisreset (命令功能:重启IIS)开始运行msjetoledb40.dll2.给系统临时文件夹%windir%/temp/ 加上IUSR_COMPUTER 用户的读写权限3.ASP连接Access数据库的时候,如果频繁刷新页面,出现80004005 未指定错误,数据库不能连接,但是过大约10多分钟后再刷新就可以连接。
ASP OLE DB连接数据库OLE DB定义了一组COM接口,以便为应用程序提供对存储在不同信息源中的数据的统一访问。
此方法允许数据源通过支持适用于数据源的众多DBMS功能的接口共享数据。
OLE DB的高性能体系结构得益于它使用了灵活的、基于组件的服务模型。
OLE DB只需要完成特定任务所需的组件,而不预先规定应用程序和数据之间的中间层数。
例如,假设有位用户需要运行查询功能,有如下几种解决方案供参考:1)数据驻留在关系数据库中,目前存在针对该数据库的ODBC驱动程序,但没有原生的OLE DB提供者。
应用程序使用ADO与OLE DB Provider for ODBC通信,OLE DB Provider for ODBC然后加载适当的ODBC驱动程序。
ODBC驱动程序将SQL语句传递给DBMS,由DBMS检索数据。
2)数据驻留在SQL Server中,针对该服务器存在原生的OLE DB提供者。
应用程序使用ADO与OLE DB Provider for Microsoft SQL Server通信,无须中间环节。
3)数据驻留在Microsoft Exchange Server中,尽管存在用于该服务器的OLEDB提供者,但它并不显露引擎来处理SQL查询:应用程序使用ADO与OLE DB Provider for Microsoft Exchange通信,并调用某个OLE DB查询处理器组件来处理查询任务。
4)数据以文档形式驻留在Microsoft NTFS文件系统中:使用原生的OLE DB提供者通过Microsoft Indexing Service可访问数据,Microsoft IndexingService索引文档系统中文档的内容和属性来支持有效的内容搜索。
在上述4种可用方案中,应用程序都可以查询数据。
使用最小数目的组件即可满足用户的要求。
在每种情况下,仅在需要时才使用额外的组件,而且只有需要的组件得到调用。
ASP ODBC连接数据库通过ODBC(Open Database Connectivity),用户可以选择希望创建的DSN(D ata Source Name)类型,是用户、系统或文件,其中用户和系统DSN存储在Win dows NT注册表中。
●系统DSN允许所有的用户登录到特定的服务器上去访问数据库。
●用户DSN使用适当的安全身份证明限制数据库到特定用户的连接。
●文件DSN用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制DSN文件,可以轻易地从一个服务器转移到另一个服务器。
数据库驱动程序使用(DSN)定位和标识特定的ODBC兼容数据库,将信息从Web应用程序传递给数据库。
典型情况下,DSN包含数据库配置、用户安全性和定位信息,且可以获取Windows NT注册表项中或文本文件的表格。
1.连接Access数据库通过ODBC连接Access数据库还可分为两种形式,一种是使用ODBC数据源(即DSN),另一种是使用ODBC驱动程序而没有DSN。
要使用ODBC数据源连接Access数据库,首先需要注册ODBC数据源,要在ASP页面中访问DSN,必须将要访问的DSN设置为系统DSN。
可按照如下步骤进行注册。
(1)依次选择【开始】|【设置】|【控制面板】命令,然后双击【管理工具】|【数据源】打开ODBC数据源管理器,如图5-35所示。
图5-35 ODBC数据源管理器图5-36 创建新数据源(2)在图5-35中,选择【系统DSN】选项页,然后单击【添加】按钮,进入“创建新数据源”对话框,如图5-36所示。
因为现在要注册的是Access数据库的ODBC数据源,所以在图5-36中应该选择第二项“Driver do Microsoft Access(*. mdb)”。
(3)单击【完成】按钮,进入“ODBC Microsoft Access安装对话框”,设置数据源名为“bbs”。
(4)再单击【选择】按钮在弹出的对话框中选择一个Access数据库文件,例如这里的itZcnBBS7.mdb,如图5-37所示。
ASP连接数据库的种方法
一、Connection 对象连接数据库
1、基本连接
采用基本的Connection对象来连接数据库,所需的参数信息包括数
据库名、用户名以及密码等,多数情况下,我们会把这样的连接参数保存
在一个文件里,这样,我们在每次连接数据库时,只需要读取该文件,然
后使用Connection 对象来连接数据库即可。
2、使用属性连接
使用属性连接是比较常用的一种数据库连接方法,它可以将连接参数
分别保存到一个全局性的Properties 对象中,当我们需要连接数据库时,只需要先读取该Properties 对象,然后使用Connection 对象来创建连接。
3、使用JDBC缓存连接
JDBC缓存技术可以提高数据库查询的性能,当使用一个缓存连接时,它会将查询的结果缓存在内存中,然后在接下来的查询中,可以直接使用
缓存的结果来实现查询加速。
要使用JDBC缓存技术,我们需要先创建一
个Connection 对象,然后使用该Connection对象创建一个JDBC缓存连接,然后就可以使用JDBC查询加速技术来实现数据库查询。
二、JDBC程序连接数据库
1、使用JDBC驱动程序连接数据库
JDBC驱动程序是一个允许Java程序访问数据库的一种中间件,它能
够连接到支持JDBC的数据库,从而使用户可以通过JDBC程序连接数据库。
我的ASP经验之路(4)--连接access数据库的两种方法、读取数据库内容这篇主要介绍以下两个问题:asp连接access数据库常用的两种方法、asp创建记录集与如何读取数据库的内容。
ASP最常连接的是ACCESS与MSSQL两种数据库,本文先介绍简单的连接ACCESS数据库的两种常用方法。
假设数据库名称为data.mdb,位于根目录下,与conn.asp文件同一目录。
连接数据库文件conn.asp写法如下:第一种:<%dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库%>第二种:<%dim conndim connstrConnstr="Provider=;Data Source=" & Server.MapPath("data.mdb")Set conn = Server.CreateObject("ADODB.Connection")Conn.Open Connstr%>接下来,我们看下asp是如何创建记录集以及如何来读取数据库里的内容的。
首先,我们要建一个数据库,里面放些需要读取的内容。
1、建立一个数据库文件,名称估且命为data.mdb ,里面准备存放一些公司企业的电话地址等内容。
数据库中建一个名为company的表,表设计以下四个字段:companyname,tel,address,website (公司名称,电话,地址,网址),字段类型全部选择“文本”,字段大小设置为250,创建好表后,打开表,自己输入随意输入几条记录值(所有建立数据库的具体操作本文略过)建好后,表设计如下图:打开表,内容如下:2、新建一个文件名为index.aspindex.asp文件代码里,首先要建立数据库连接,代码如上面介绍:dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库创建记录集:set rs=server.CreateObject("adodb.recordset") '创建rs记录集sql="select * from [company]" '读取数据库的SQL语句串rs.open sql,conn,1,1 '打开记录集读取数据库代码:结合前面介绍过的do while ...loop语句来循环读取多条记录内容<table width="100%" border="0" cellspacing="0" cellpadding="0"><%do while not rs.eof'rs.eof意思是最后一条记录,rs.bof的意思是第一条记录,所以这句话的意思是:当不是最后一条记录时,输出下面的代码%><tr><td height="24"><%=rs("companyname")%></td><td><%=rs("tel")%></td><td><%=rs("address")%></td><td><a href="<%=rs("website")%>" target="_blank"><%=rs("website")%></a></td></tr><%rs.movenext '移到下一条记录loop%></table>所有代码放在一起就是index.asp的所有代码。
(一)数据库的选择:有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。
那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。
对于非服务器级的数据库建议使用ACCESS97。
因为:(1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。
(2)ACCESS支持的SQL指令非常齐全。
(3)ACCESS ODBC驱动程序的效率非常高。
虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。
(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。
本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。
(二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。
(1)首先建立ACCESS数据库customer.mdb(今后有用的)。
建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。
将表保存为"客户"(今后有用的,===>看看图)。
注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。
建议今后做数据库时最好都加上这2项,不会没用的。
此外,在保存表时ACCESS 会询问是否建立一个住关键字,我们不需要它所以不必建立。
还有:时间字段的"默认值"设成"now()",即去系统当时的时间。
同时将索引项设成"有(允许重复)",含义:WEB上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。
===>看看图(2)建立递交表单add.htm:源代码如下:<html><head><title>添加数据库记录</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF"><p align="center"><font size="5">添加数据库记录</font></p><form method="post" action="adddatabase.asp"><div align="center"><table width="46%" border="0"><tr><td width="28%"><div align="right">公司名称:</div></td><td width="72%"><input type="text" name="CompanyName"></td></tr><tr><td width="28%"><div align="right">联络人姓名:</div></td><td width="72%"><input type="text" name="CName"></td></tr><tr><td width="28%"><div align="right">所在城市:</div></td><td width="72%"><input type="text" name="City"></td></tr><tr><td width="28%"><div align="right">电话号码:</div></td><td width="72%"><input type="text" name="Tel"></td></tr><tr><td width="28%"><div align="right"> </div></td><td width="72%"><input type="submit" name="Submit" value="Submit"> <input type="reset" name="reset" value="Reset"></td></tr></table></div></form></body></html>这与普通的HTML没有任何区别,关键部分已经用红色标记了。
2.0连接SQL Server 数据库详解本文将详细介绍如何使用Connection 对象连接数据库。
对于不同的.NET 数据提供者, 采用不同的Connection 对象连接数据库。
这些Connection 对象为我们屏蔽了具体的实现细节,并提供了一种统一的实现方法。
Connection 类有四种:SqlConnection ,OleDbConnection ,OdbcConnection 和OracleConnection 。
SqlConnection 类的对象连接SQL Server 数据库;OracleConnection 类的对象连接Oracle 数据库;OleDbConnection 类的对象连接支持OLE DB 的数据库,如Access ;而OdbcConnection 类的对象连接任何支持ODBC 的数据库。
与数据库的所有通讯最终都是通过Connection 对象来完成的。
SqlConnection 类Connection 用于与数据库“对话”,并由特定提供程序的类(如 SqlConnection )表示。
尽管SqlConnection 类是针对Sql Server 的,但是这个类的许多属性、方法与事件和OleDbConnection 及OdbcConnection 等类相似。
本章将重点讲解SqlConnection 特定的属性与方法,其他的Connection 类你可以参考相应的帮助文档。
注意:使用不同的Connection 对象需要导入不同的命名空间。
OleDbConnection 的命名空间为System.Data.OleDb 。
SqlConnection 的命名空间为System.Data.SqlClient 。
OdbcConnection 的命名空间为System.Data.Odbc 。
OracleConnection 的命名空间为System.Data.OracleClinet 。
SqlConnection 属性:属性 说明ConnectionString 其返回类型为string,获取或设置用于打开 SQL Server 数据库的字符串。
ConnectionTimeOut 其返回类型为int,获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。
Database其返回类型为string,获取当前数据库或连接打开后要使用的数据库的名称。
DataSource其返回类型为string,获取要连接的 SQL Server 实例的名称。
State其返回类型为ConnectionState,取得当前的连接状态:Broken 、Closed 、Connecting 、Fetching 或Open 。
ServerVersion其返回类型为string,获取包含客户端连接的 SQL Server 实例的版本的字符串。
PacketSize获取用来与 SQL Server 的实例通信的网络数据包的大小(以字节为单位)。
这个属性只适用于SqlConnection 类型SqlConnection 方法:方法说明 Close() 其返回类型为void,关闭与数据库的连接。
CreateCommand() 其返回类型为SqlCommand,创建并返回一个与 SqlConnection 关联的 SqlCommand 对象。
Open() 其返回类型为void,用连接字符串属性指定的属性打开数据库连接SqlConnection事件:事件说明StateChange 当事件状态更改时发生。
(从DbConnection 继承。
)InfoMessage 当SQL Server 返回一个警告或信息性消息时发生。
提示:可以用事件让一个对象以某种方式通知另一对象产生某些事情。
例如我们在Windows系统中选择“开始”菜单,一旦单击鼠标时,就发生了一个事件,通知操作系统将“开始”菜单显示出来。
使用SqlConnection对象连接SQL Server数据库我们可以用SqlConnection()构造函数生成一个新的SqlConnection对象。
这个函数是重载的,即我们可以调用构造函数的不同版本。
SqlConnection()的构造函数如下表所示:构造函数说明SqlConnection () 初始化SqlConnection 类的新实例。
SqlConnection (String) 如果给定包含连接字符串的字符串,则初始化SqlConnection 类的新实例。
假设我们导入了System.Data.SqlClient命名空间,则可以用下列语句生成新的SqlConnection对象:程序代码说明:在上述语法范例的程序代码中,我们通过使用“new“关键字生成了一个新的SqlConnection对象,并且将其命名为mySqlConnection。
现在我们就可以使用如下两种方式连接数据库,即采用集成的Windows验证和使用Sql Server身份验证进行数据库的登录。
集成的Windows身份验证语法范例string connectionString="server=localhost;database=Northwind;integrated security=SSPI";程序代码说明:在上述语法范例的程序代码中,我们设置了一个针对Sql Server数据库的连接字符串。
其中server表示运行Sql Server的计算机名,由于在本书中,程序和数据库系统是位于同一台计算机的,所以我们可以用localhost取代当前的计算机名。
database表示所使用的数据库名,这里设置为Sql Server自带的一个示例数据库--Northwind。
由于我们希望采用集成的Windows验证方式,所以设置integrated security为SSPI即可。
Sql Server 2005中的Windows身份验证模式如下:注意:在使用集成的Windows验证方式时,并不需要我们输入用户名和口令,而是把登录Windows 时输入的用户名和口令传递到Sql Server。
然后Sql Server检查用户清单,检查其是否具有访问数据库的权限。
而且数据库连接字符串是不区分大小写的。
采用Sql Server身份验证的语法范例程序代码说明:在上述语法范例的程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。
uid为指定的数据库用户名,pwd为指定的用户口令。
为了安全起见,一般不要在代码中包括用户名和口令,你可以采用前面的集成的Windows验证方式或者对Web.Config文件中的连接字符串加密的方式提高程序的安全性。
Sql Server 2005中的Sql Server身份验证模式如下:如果你使用其他的数据提供者的话,所产生的连接字符串也具有相类似的形式。
例如我们希望以OLE DB的方式连接到一个Oracle数据库,其连接字符串如下:程序代码说明:在上述语法范例的程序代码中,通过专门针对Oracle数据库的OLE DB提供程序,实现数据库的连接。
data source 表示运行Oracle数据库的计算机名,initial catalog表示所使用的数据库名。
provider表示使用的OLE DB提供程序为MSDAORA。
Access数据库的连接字符串的形式如下:string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;@”data source=c:\DataSource\Northwind.mdb”;程序代码说明:在上述语法范例的程序代码中,通过专门针对Access数据库的OLE DB提供程序,实现数据库的连接。
这使用的的OLE DB提供程序为Microsoft.Jet.OLEDB.4.0,并且数据库存放在c:\DataSource目录下,其数据库文件为Northwind.mdb。
现在我们就可以将数据库连接字符串传人SqlConnection()构造函数,例如:或者写成在前面的范例中,通过使用“new“关键字生成了一个新的SqlConnection对象。
因此我们也可以设置该对象的ConnectionString属性,为其指定一个数据库连接字符串。
这和将数据库连接字符串传人SqlConnection()构造函数的功能是一样的。
注意:只能在关闭Connection对象时设置ConnectionString属性。
打开和关闭数据库连接生成Connection对象并将其设置ConnectionString属性设置为数据库连接的相应细节之后,就可以打开数据库连接。
为此可以调用Connection对象的Open()方法。
其方法如下:完成数据库的连接之后,我们可以调用Connection对象的Close()方法关闭数据库连接。
例如:下面是一个显示如何用SqlConnection对象连接Sql Server Northwind数据库的实例程序,并且显示该SqlConnection对象的一些属性。
范例程序代码如下:01 public partial class _Default : System.Web.UI.Page02 {03 protected void Page_Load(object sender, EventArgs e)04 {05 //建立数据库连接字符串06 string connectionString = "server=localhost;database=Northwind;07 integrated security=SSPI";08 //将连接字符串传入SqlConnection对象的构造函数中09 SqlConnection mySqlConnection = new SqlConnection(connectionString);10 try11 {12 //打开连接13 mySqlConnection.Open();14 //利用label控件显示mySqlConnection对象的ConnectionString属性15 lblInfo.Text = "<b>mySqlConnection对象的ConnectionString属性为:<b>" +16 mySqlConnection.ConnectionString + "<br>";17 lblInfo.Text += "<b>mySqlConnection对象的ConnectionTimeout属性为<b>" +18 mySqlConnection.ConnectionTimeout + "<br>";19 lblInfo.Text += "<b>mySqlConnection对象的Database属性为<b>" +20 mySqlConnection.Database + "<br>";21 lblInfo.Text += "<b>mySqlConnection对象的DataSource属性为<b>" +22 mySqlConnection.DataSource + "<br>";23 lblInfo.Text += "<b>mySqlConnection对象的PacketSize属性为<b>" +24 mySqlConnection.PacketSize + "<br>";25 lblInfo.Text += "<b>mySqlConnection对象的ServerVersion属性为<b>" +26 mySqlConnection.ServerVersion + "<br>";27 lblInfo.Text += "<b>mySqlConnection对象的当前状态为<b>" +28 mySqlConnection.State + "<br>";29 }30 catch (Exception err)31 {32 lblInfo.Text = "读取数据库出错";33 lblInfo.Text += err.Message;34 }35 finally36 {37 //关闭与数据库的连接38 mySqlConnection.Close();39 lblInfo.Text += "<br><b>关闭连接后的mySqlConnection对象的状态为:</b>";40 lblInfo.Text += mySqlConnection.State.ToString();41 }42 }43 }程序代码说明:在上述范例的程序代码中,我们利用try catch finally对数据库连接进行异常处理。