connection连接mysql_⽤connection对象连接数据库
本⽂将详细介绍如何使⽤connection对象连接数据库。对于不同的数据提供者,ado采⽤不同的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的命名空间为
acleclinet。
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,⽤连接字符串属性指定的属性打开数据库连接
mysql下载链接
sqlconnection事件:
事件
说明
statechange
当事件状态更改时发⽣。 (从 dbconnection 继承。)
infomessage
当 sql server 返回⼀个警告或信息性消息时发⽣。
提⽰:可以⽤事件让⼀个对象以某种⽅式通知另⼀对象产⽣某些事情。例如我们在windows系统中选择“开始”菜单,⼀旦单击⿏标时,就发⽣了⼀个事件,通知操作系统将“开始”菜单显⽰出来。
使⽤sqlconnection对象连接sql
server数据库
我们可以⽤sqlconnection()构造函数⽣成⼀个新的sqlconnection对象。这个函数是重载的,即我们可以调⽤构造函数的不同版本。sqlconnection()的构造函数如下表所⽰:
构造函数
说明
sqlconnection ()
初始化 sqlconnection 类的新实例。
sqlconnection (string)
如果给定包含连接字符串的字符串,则初始化 sqlconnection 类的新实例。
程序代码说明:在上述语法范例的程序代码中,我们通过使⽤“new“关键字⽣成了⼀个新的sqlconnection对象,并且将其命名为mysqlconnection。
现在我们就可以使⽤如下两种⽅式连接数据库,即采⽤集成的windows验证和使⽤sql
server⾝份验证进⾏数据库的登录。
集成的windows⾝份验证语法范例
string
connectionstring="server=localhost;database=northwind;
integrated
security=sspi";
程序代码说明:在上述语法范例的程序代码中,我们设置了⼀个针对sql
server数据库的连接字符串。其中server表⽰运⾏sql
server的计算机名,由于在本书中,asp程序和数据库系统是位于同⼀台计算机的,所以我们可以⽤localhost取代当前的计算机名。database表⽰所使⽤的数据库名,这⾥设置为sql
server⾃带的⼀个⽰例数据库--northwind。由于我们希望采⽤集成的windows验证⽅式,所以设置 integrated
security为sspi即可。
sql server 2005中的windows⾝份验证模式如下:
注意:在使⽤集成的windows验证⽅式时,并不需要我们输⼊⽤户名和⼝令,⽽是把登录windows时输⼊的⽤户名和⼝令传递到sql
server。然后sql server检查⽤户清单,检查其是否具有访问数据库的权限。⽽且数据库连接字符串是不区分⼤⼩写的。
采⽤sql
server⾝份验证的语法范例
string connectionstring =
"server=localhost;database=northwind;uid=sa;pwd=sa";
程序代码说明:在上述语法范例的程序代码中,采⽤了使⽤已知的⽤户名和密码验证进⾏数据库的登录。uid为指定的数据库⽤户名,pwd 为指定的⽤户⼝令。为了安全起见,⼀般不要在代码中包括⽤户名和⼝令,你可以采⽤前⾯的集成的windows验证⽅式或者对fig ⽂件中的连接字符串加密的⽅式提⾼程序的安全性。
sql
server 2005中的sql server⾝份验证模式如下:
如果你使⽤其他的数据提供者的话,所产⽣的连接字符串也具有相类似的形式。例如我们希望以ole
db的⽅式连接到⼀个oracle数据库,其连接字符串如下:
string connectionstring = "data source=localhost;initial
catalog=sales;
use
id=sa;password=;provider=msdaora";
程序代码说明:在上述语法范例的程序代码中,通过专门针对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()构造函数,例如:
string connectionstring =
"server=localhost;database=northwind;uid=sa;pwd=sa";
sqlconnection
mysqlconnection = new sqlconnection(connectionstring);
或者写成
sqlconnection mysqlconnection =new
sqlconnection(
"server=localhost;database=northwind;uid=sa;pwd=sa");
在前⾯的范例中,通过使⽤“new“关键字⽣成了⼀个新的sqlconnection对象。因此我们也可以设置该对象的connectionstring属性,为其指定⼀个数据库连接字符串。这和将数据库连接字符串传⼈sqlconnection()构造函数的功能是⼀样的。
sqlconnection mysqlconnection = new
sqlconnection();
"server=localhost;database=northwind;uid=sa;pwd=sa";
注意:只能在关闭connection对象时设置connectionstring属性。
打开和关闭数据库连接
⽣成connection对象并将其设置connectionstring属性设置为数据库连接的相应细节之后,就可以打开数据库连接。为此可以调⽤connection对象的open()⽅法。其⽅法如下:
mysqlconnection.open();
完成数据库的连接之后,我们可以调⽤connection对象的close()⽅法关闭数据库连接。例如:
mysqlconnection.close();
下⾯是⼀个显⽰如何⽤sqlconnection对象连接sql
server northwind数据库的实例程序,并且显⽰该sqlconnection对象的⼀些属性。
范例程序代码如下:
01 public partial class _default : system.web.ui.page
02
{undefined
03 protected void page_load(object sender, eventargs e)
04 {undefined
05
//建⽴数据库连接字符串
06 string connectionstring =
"server=localhost;database=northwind;
07 integrated security=sspi";
08
/
/将连接字符串传⼊sqlconnection对象的构造函数中
09 sqlconnection mysqlconnection = new
sqlconnection(connectionstring);
10 try
11 {undefined
12 //打开连接
13
mysqlconnection.open();
14
//利⽤label控件显⽰mysqlconnection对象的connectionstring属性
=
"<b>mysqlconnection对象的connectionstring属性为:<b>" +
16
+=
"<b>mysqlconnection对象的connectiontimeout属性为<b>" +
18
+=
"<b>mysqlconnection对象的database属性为<b>" +
20 mysqlconnection.database +
"<br>";
+= "<b>mysqlconnection对象的datasource属性为<b>" + 22
mysqlconnection.datasource + "<br>";
+=
"<b>mysqlconnection对象的packetsize属性为<b>" +
24 mysqlconnection.packetsize +
"<br>";
+= "<b>mysqlconnection对象的serverversion属性为<b>" +
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论