4-1-5
Connection对象
1.Connection对象概述
要开发数据库应用程序,首先需要建立与数据库的连接。在ADO.NET中,数据库连接是通过Connection对象管理的。此外,事务管理也通过Connection对象进行。不同的数据提供程序对应着不同的Connection对象,请看表4-6。
表4-6 各个命名空间中的Connection对象表
提供程序
|
Connection类
|
SQL数据提供程序
|
SqlConnection
|
OLE DB数据提供程序
|
OleDbConnection
|
Oracle数据提供程序
|
OracleConnection
|
ODBC数据提供程序
|
OdbcConnection
|
在后面的内容中,主要以SqlConnection对象为例。
2.Connection对象的使用
(1)Connection对象的属性和方法
Connection对象最常用的属性有ConnectionString和Database。其中ConnectionString属性用来获取或设置用于打开SQL Server数据库的字符串。Database属性用来获取当前数据库或连接打开后要使用的数据库的名称。ConnectionString属性要使用到连接字符串,关于连接字符串部分,在后面将有大篇幅来介绍。
Connection对象最常用的方法有Open()和Close()。其中Open()方法使用ConnectionString所指定的属性设置打开数据库连接。如果SqlConnection超出范围,则不会将其关闭。因此,必须通过调用Close显式关闭该连接。Close()方法用来关闭与数据库的连接。这是关闭任何打开连接的首选方法。请看下面的示例:
private
static void OpenSqlConnection(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
Console.WriteLine("State: {0}", connection.State);
}
}
(2)Connection对象组件
.NET开发平台将一部分对象做成可视化的对象组件,程序员在编程的时候可以不用编写大量代码去定义和使用,只需要在工具箱中拖拽一个组件到窗体上,就可以进行配置使用。这种方式大幅的提高了编程效率,降低了出错率,但是在实际项目开发中不建议采取这种拖拽的形式进行ADO.NET开发。
3.
案例学习:通过拖拽形式建立Connection对象的数据库连接实验
u
实验步骤(1):
首先右击工具箱弹出菜单,在弹出菜单中点击“选择项”,在出现的选择工具箱箱中选中要使用到的SqlConnection等一系列ADO.NET对象组件,在它们前面的复选框中打上对号,并;最后点击“确定”,SqlConnection等组件就出现在工具箱中。如图4-13所示。
图4-13 向工具箱添加组件图
u
实验步骤(2):
在工具箱中选择“数据”选项卡,找到刚刚添加上的SqlConnection对象组件,点击后向窗体拖放,在设计窗口下的组件栏出现SqlConnection1对象。选中SqlConnection1对象,在属性窗口找到ConnectionString属性,选择右侧下拉框中的“新建连接”。设计窗口会弹出一个“添加连接”窗口(如图4-14所示)。这个窗口是配置SqlConnection1对象的连接属性而专用的窗口。在“添加连接”窗口,首先要在列表中选择SQL Server服务器,然后要指定用户和密码,最后选择要连接的数据库。点击“测试连接”,如果连接成功,则会显示一则成功消息。这时,就可以看到SqlConnection1对象的ConnectionString属性右侧栏中出现一长串字符,这就是连接字符串。在后续的代码编写过程中,就可以使用SqlConnection1对象对数据库进行访问了。
图4-14 添加数据库连接图
4.案例学习:通过编写代码来连接数据库的连接实验
u
实验步骤(1):定义连接字符串
数据库的连接定义一般是以字符串的形式出现,该字符串的定义参见图4-15所示。
图4-15 连接字符串举例图
不管用拖放方式在图形界面增加的SqlConnection1对象,还是通过代码编写生成的SqlConnection1对象,都需要定义连接字符串。界面增加的SqlConnection1对象,其连接字符串在配置数据库连接后自动生成,而代码编写生成的SqlConnection1对象,其连接字符串需要安装格式要求手工编写。连接字符串决定了连接某台服务器,某个数据库,还有连接方式及要求。
编程时定义连接字符串的具体例子,参见图4-16:
图4-16 定义连接字符串具体举例图
图4-16中,SqlConnection1为sqlconnection对象,通过sqlconnection对象加载数据库连接字符串与MSSQL进行连接。在连接字符串中,“Server=SQLDB;”表示存储“pubs”数据库的服务器名称,该服务器名称为SQLDB,也可以写成IP地址,如123.101.220.1。如果是本地数据库服务器,可以有以下几种写法:
n
“(local)”或者“.”
n
“127.0.
0.1
”
n
本地机子名称
在连接字符串中,“User id=sa; pwd=password”表示登录数据库服务器用户名称和密码,使用这种用户身份登录方式必须是,用户同样可以使用“SQL Server身份认证”登录数据库服务器,否则连接仍然会失败。最后的“database=pubs”表示登录服务器是pubs数据库。
小知识:
连接字符串
所有的连接字符串都有相同的格式,它们由一组关键字和值组成,中间用分号隔开,两端加上单引号或双引号。关键字不区分大小写,但是值可能会根据数据源的情况区分大小写。
假设SQL Server2005数据库服务器为本机,要访问的数据库名为MyDB,采用Windows集成安全性认证方式。
①
SQL Client
方式的连接字符串如下:
"Data Source=127.0.0.1;Persist Security Info=False;Initial Catalog=MyDB;Integrated Security=SSPI"
"Data Source"
是关键字,这里与"server"可以呼唤,都用来表示数据库服务器,等号后面就要对应具体的数据库服务器的IP或者名称。"Persist Security Info"关键字,如果将该关键字设置为true或yes,将允许在打开连接后,从连接中获得涉及安全性的信息(包括用户标识和密码)。如果在建立连接时必须提供用户标识和密码,最安全的方法是在使用信息打开连接后丢弃这些信息,在Persist Security Info设置为false或no时会发生这种情况。当您向不可信的源提供打开的连接,或将连接信息永久保存到磁盘时,这点尤其重要。如果将Persist Security Info保持为false,可帮助确保不可信的源无法访问连接中涉及安全性的信息,并帮助确保任何涉及安全性的信息都不会随连接字符串信息在磁盘上持久化。"Initial Catalog"关键字可以与"database"关键字互换,用来指定需要连接的数据库服务器中具体某一数据库,等号后面就要对应具体的数据库,本例中就是"MyDB"。"Integrated Security"关键字表示是否使用Windows身份验证(通常称为集成安全性)连接到服务器数据库上。如果键值为"true"或者"SSPI"表示指定Windows身份验证,如果键值为"false"表示不指定Windows身份验证。但是,只有键值"SSPI"将适用于OleDb .NET Framework数据提供程序。对于ODBC .NET Framework数据提供程序,必须使用以下键/值"Trusted_Connection=yes;"指定Windows身份验证。对于不使用Windows身份验证而使用SQL Server身份验证,使用"User ID=*****;Password=*****;"替换掉"Integrated Security"关键字及其键值,来指定用户名和密码。
②
OLE DB
方式的连接字符串如下:
"Provider=SQLOLEDB;Data Source=127.0.0.1;Persist Security Info=False;
Initial Catalog=MyDB;Integrated Security=SSPI"
"Provider"
关键字用来指定哪一类数据源,其键值取值可以参见表4-4,其他关键字用法与SQL Client方式相同。
③
ODBC
方式的连接字符串如下:
"Driver={SQL Server};Server=127.0.0.1;Database=MyDB;Trusted_Connection=Yes;UID=Administrator"
"Driver"
关键字用来指定哪一类数据源,其键值取值可以参见表4-5,其他关键字用法与SQL Client方式相似。区别就是"Trusted_Connection"、"UID"与"Integrated Security"、"User ID",关键字虽然不同,但是用法相同。
u
实验步骤(2):创建Connection对象
在代码编辑器里面,通过编写代码的方式创建Connection对象的过程参见图4-17所示:
图4-17 创建连接对象图
在对象创建过程中将连接字符串作为参数传递给SqlConnection类的构造函数,这样连接对象SqlConnection1就可以用来访问数据了。构造函数还有个重载,就是参数为空的构造函数。在实例化时不将连接字符串作为参数传给构造函数,实例化之后,给对象SqlConnection1的属性ConnectionString赋值,完成对象SqlConnection1的设置。例如:
SqlConnection
SqlConnection1 = new SqlConnection();
SqlConnection1.ConnectionString = "Data Source=
10.5.0
.30;Initial Catalog=TTDB;
User ID=TrainingDeveloper Pwd=Password"
;
u
实验步骤(3):打开与数据库的连接
用Connection对象的Open()方法就可以打开数据库连接。例如:
SqlConnection1.Open( );
本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/214525,如需转载请自行联系原作者