第3章 数据源连接
数据访问技术—— ADO.NET 2.0 第1章: 数据库基础 第 6 章: 类型化DataSet 第 2 章: ADO.NET 2.0概述 第 3 章: 数据源连接 第 4 章: 在连接环境中获取数据 第 5 章: 构建DataSet 第 6 章: 类型化DataSet 第 7 章: 在断开连接的环境中编辑和更新数据 第 8章: 数据的排序、搜索和过滤 第 9 章: 事务 第 10 章: ADO.NET和XML 2
目标 本章学习目标: 掌握将Connection对象的实例添加至Windows窗体中的方法 掌握通过编程创建Connection对象的方法 理解如何管理数据源连接的打开及关闭连接 掌握连接池的概念 掌握处理连接事件的步骤 理解如何处理连接的异常 3
第3章 数据源连接 连接数据源 ConnectionString属性 管理数据源连接 处理连接事件 小结 实验 习题
连接数据源 3.1 连接数据源 通过Visual Studio 2005创建Connection对象 通过编程创建Connection对象
通过Visual Studio 2005 创建Connection对象 1
通过Visual Studio 2005 创建Connection对象(续) 等待一段时间后,出现 “选择工具箱项” 对话框,从中找到SqlConnection对象,勾选后单击“确定”按钮 。 2
3 通过Visual Studio 2005 创建Connection对象(续) 这样就可以在工具箱中看到SqlConnection控件 。
4 通过Visual Studio 2005 创建Connection对象(续) 在窗体设计器中,拖曳一个SqlConnection控件 。
5 通过Visual Studio 2005 创建Connection对象(续) 在“属性”窗口中,把对象的Name属性值改为cnSql,并选择上一章曾用过的ConnectionString 。 5
创建Connection对象的多媒体演示
通过编程创建Connection对象 可以通过创建各个Connection类的新实例来创建Connection对象。代码如下所示 。 3.1.2 通过编程创建 Connection对象 可以通过创建各个Connection类的新实例来创建Connection对象。代码如下所示 。 [C#] SqlConnection testConnection = new SqlConnection(); [VB.NET] Dim testConnection As New SqlConnection
第3章 数据源连接 连接数据源 ConnectionString属性 管理数据源连接 处理连接事件 小结 实验 习题 13
ConnectionString属性 ConnectionString属性的参数表 3.2 ConnectionString属性 参数 描述 默认值 Provider 设置或返回连接的OLE DB 数据提供程序(仅OLE DB .NET Framework 数据提供程序) 空 Connection Timeout 或Connect Timeout 在数据源终止尝试和返回错误提示信息之前,连接到服务器所需等待的时间秒数 15S Initial Catalog 或 Database 打开连接后要打开的数据库的名称 Data Source 数据库所处的位置和包含它的文件
ConnectionString属性(续) Integrated Security 或Trusted_Connection 如果此参数值为false,则必须指定其中的User ID 和Password。如果其值为true,则数据源使用当前身份验证的Microsoft Windows账户凭证。 其可识别值为true、false、yes、no以及sspi (强烈推荐),sspi 等价于true User ID 如果Integrated Security设置为false,则该参数为要使用的数据源登录账户 Password 如果Integrated Security设置为false,则该参数为要使用的数据源登录账户密码 Persist Security Info 如果此参数值为false,且正在打开连接或已在连接打开状态时,数据源将不返回安全敏感信息,例如密码 其默认值为false
设置ConnectionString属性 从“工具箱”中拖曳一个SqlDataSource控件到设计窗口上 。 1 16
2 设置ConnectionString 属性(续) 3.2.1 设置ConnectionString属性 选择“配置数据源”链接项,进入配置数据源的向导 。 2 17
3 设置ConnectionString 属性(续) 3.2.1 利用向导来设置ConnectionString属性 如果已建立数据连接,那些数据连接就会出现在下拉式列表中,从中选择所需要的项即可 。 3 18
4 设置ConnectionString 属性(续) 3.2.1 设置ConnectionString属性 展开“连接字符串”左侧的加号,可以看到连接字符串的内容 。 4 19
5 设置ConnectionString 属性(续) 3.2.1 设置ConnectionString属性 如果先前未建立数据连接,可以单击“新建连接”按钮。 5 20
设置ConnectionString属性的多媒体演示
1 存储到应用程序配置文件的方法 在Windows应用程序中, 将连接字符串存储到配置文件app.config中的方法如下 。 3.2.2 存储到应用程序配置 文件的方法 在Windows应用程序中, 将连接字符串存储到配置文件app.config中的方法如下 。 1 从工具箱中拖曳一个SqlConnection控件到Windows应用程序“设计器”中 。 22
2 存储到应用程序配置文件的方法 (续) 3.2.2 存储到应用程序配置 文件的方法 3.2.2 存储到应用程序配置 文件的方法 选中SqlConnection控件,在 “属性”窗口中,选择ConnectionString属性。 2
3 存储到应用程序配置文件的方法 (续) 3.2.2 存储到应用程序配置文件的方法 3.2.2 存储到应用程序配置文件的方法 展开ApplicationSettings结点,选择PropertyBinding属性,单击其右侧的省略号按钮 。 3
4 存储到应用程序配置文件的方法 (续) 3.2.2 存储到应用程序配置文件的方法 3.2.2 存储到应用程序配置文件的方法 在弹出的“sqlConnection1的应用程序设置”对话框中,单击ConnectionString结点右侧的下拉箭头,选择“新建”命令。 4
5 存储到应用程序配置文件的方法 (续) 3.2.2 存储到应用程序配置文件的方法 3.2.2 存储到应用程序配置文件的方法 在弹出的“新建应用程序设置”对话框中,在DefaultValue结点中填入第2步所生成的ConnectionString,在Name结点填入SqlConnection的名称,单击“确定”按钮 。 5
6 存储到应用程序配置文件的方法 (续) 3.2.2 存储到应用程序配置文件的方法 3.2.2 存储到应用程序配置文件的方法 打开“解决方案资源管理器”中的app.config文件,可以看到ConnectionString已经存储至该文件中了。 6
存储到应用程序配置文件的方法多媒体演示 多媒体演示
1 2 存储到Web应用程序的配置文件 现在来看一下如何将连接字符串存储到Web应用程序的配置文件web.config中 。 在<configuration>根元素内,手动添加一个名为<connectionStrings>的元素 。 29
3 4 存储到Web应用程序的配置文件(续) 3.2.3 存储到Web应用程序的配置文件 在<connectionStrings>元素内,为希望在配置文件中定义的各个连接字符串添加一个名为<add>的元素 。 4 为每个 <add>元素定义一个name 属性,以便为每个连接字符串指定一个编码名称 。 30
存储到Web应用程序的配置文件多媒体演示
RSA密钥 下表描述了包含敏感信息的配置节以及通常所需加密的配置节 。 3.2.4 RSA密钥 配置节 描述 <appSettings> 包含自定义应用程序的设置信息 <connectionStrings> 包含连接字符串 <identity> 包含模拟凭证 <sessionState> 包含进程外的会话状态提供程序的连接字符串
1 2 3 RSA密钥 (续) 请看示例:使用具有计算机级别密钥容器的RSA 来加密web.config中的连接字符串的方法 。 在命令提示符处,运行带有特定选项的aspnet_regiis.exe。 2 打开 web.config 文件, 并查看已加密的内容。其内容与下面的多媒体演示web.config文件类似 。 3 关闭 web.config 文件。 33
加密web.config中的连接字符串的多媒体演示
第3章 数据源连接 连接数据源 ConnectionString属性 管理数据源连接 处理连接事件 小结 实验 习题 35
管理数据源连接 3.3 管理数据源连接 打开和关闭连接 连接池
1 2 3 打开和关闭连接 通过调用使用连接对象的方法来隐式地打开和关闭连接。相关的这三个对象分别是: DataAdapter 3.3.1 打开和关闭连接 通过调用使用连接对象的方法来隐式地打开和关闭连接。相关的这三个对象分别是: 1 DataAdapter 2 TableAdapter 3 Command 37
1 2 3 打开和关闭连接 (续) 连接的主要方法有Open()方法、Close()方法和Dispose()方法 3.3.1 打开和关闭连接 连接的主要方法有Open()方法、Close()方法和Dispose()方法 Open()方法利用ConnectionString属性的信息来连接数据源并打开连接。 1 Close()方法关闭连接。在使用完连接后,显式地关闭连接是非常必要的 。 2 Dispose()方法用来释放正在由SqlConnection对象所使用的资源 。 3 38
1 2 3 打开和关闭连接 (续) 显式地打开和关闭连接是一种推荐的方法,原因如下。 能够生成更清晰、更易读的代码。 有助于程序调试。 3.3.1 打开和关闭连接 显式地打开和关闭连接是一种推荐的方法,原因如下。 1 能够生成更清晰、更易读的代码。 2 有助于程序调试。 3 执行时更为有效 。 39
连接池 SQL Server .NET Framework 数据提供程序自动为Microsoft ADO.NET客户端应用程序提供连接池 。 3.3.2 连接池 SQL Server .NET Framework 数据提供程序自动为Microsoft ADO.NET客户端应用程序提供连接池 。 如果 Pooling 属性值为 false,则池程序将打开一个新的连接而非尝试从池中获取一个连接。 如果 Pooling 属性值为默认值 true,则池程序将尝试从池中获取一个连接 。 代码示例C# 代码示例VB 40
连接池(续) 下表描述了可用于调整连接池行为的ConnectionString 值 。 3.3.2 连接池 默认值 描述 Connection Lifetime 当连接池程序将一个连接返回到连接池中时,需将该连接的创建时间与当前时间作比较,如果时间跨度(以秒为单位)超出Connection Lifetime所指定的值,则注销该连接。 这在聚集配置中很有用,以强制在正在运行的服务器和刚置于联机状态的服务器之间实施负载平衡 Connection Reset True 确定从池中移除连接时是否重置数据库连接。设置其值为False,可以避免获取连接时再有一次额外的服务器往返,但必须注意连接状态(如数据库上下文)不会被重置。再次使用连接时,此默认选项使连接自动更改为原始的数据库上下文。这将导致对服务器的一次多余(可能不必要的)调用 Enlist 当其值为True时,如果存在当前事务上下文,池管理程序将自动在创建线程的当前事务上下文中登记连接
连接池(续) (续表) 代码示例C# 代码示例VB 3.3.2 连接池 Max Pool Size 100 连接池中允许的最大连接数 Min Pool Size 连接池中维护的最小连接数 Pooling True 当其值为True时,将从相应的连接池中取出连接,或者在必要时创建连接并将其添加至相应的连接池中 代码示例C# 代码示例VB
连接池的多媒体演示 多媒体演示
第3章 数据源连接 连接数据源 ConnectionString属性 管理数据源连接 处理连接事件 小结 实验 习题 44
处理连接事件 Connection 对象的事件及其描述如下表所示 。 3.4 处理连接事件 事件 描述 StateChange 当连接从关闭状态更改为打开状态, 或从打开状态更改为关闭状态时才发生 InfoMessage 当数据源返回一个信息消息时才发生。 信息消息是来自数据源且不会导致抛出异常的消息
处理连接事件(续) 3.4 处理连接事件 处理StateChange 事件 随堂练习 处理InfoMessage 事件 处理连接的异常
处理StateChange 事件 下表的两个属性可以确定连接状态中所做的更改 。 3.4.1 处理StateChange 事件 属性 说明 OriginalState 指示连接更改之前的状态 CurrentState 指示连接更改之后的状态
处理StateChange事件的多媒体演示 VB多媒体演示
随堂练习 将创建Windows应用程序,该程序分别利用VB.NET和C#处理SqlConnection对象的StateChange事件。 3.4.2 随堂练习 将创建Windows应用程序,该程序分别利用VB.NET和C#处理SqlConnection对象的StateChange事件。 VB.NET (1) 利用VB.NET创建一个名为 HandlingStateChange的新的Windows应用程序项目。 (2) 将两个分别标有“Open”和“Close”的Button 控件添加到Form1上。 (3) 将按钮分别命名为btnOpen和btnClose。 49
随堂练习(续) (4) 在“属性”窗口中,将Enable属性设置为false以禁用“Close”按钮 。 3.4.2 随堂练习 (4) 在“属性”窗口中,将Enable属性设置为false以禁用“Close”按钮 。 添加SqlConnection控件到Form1上,并将其命名为cnAdventureWorks。 设置cnAdventureWorks的连接字符串以使用 (本地) SQL Server和AdventureWorks数据库,Integrated Security的值为sspi 。 50
随堂练习(续) 在“Open”按钮中添加代码以打开连接。 在“Close”按钮中添加代码以关闭连接。 3.4.2 随堂练习 在“Open”按钮中添加代码以打开连接。 在“Close”按钮中添加代码以关闭连接。 添加代码,使其通过检查当前状态和恰当地启用(或禁用)两个按钮来处理cnAdventureWorks的StateChange事件 。 51
随堂练习(续) 3.4.2 随堂练习 启动应用程序,并单击“Open”按钮 。 单击“Close”按钮 。 停止应用程序的运行 。 52
随堂练习(续) 3.4.2 随堂练习 2. C# (1) 利用Visual C#创建一个名为HandlingStateChange的新的Windows应用程序项目 。 (2) 添加两个分别标有“Open”和“Close”的按钮到Form1上 。 (3) 将按钮分别命名为btnOpen和btnClose 。 53
随堂练习(续) 3.4.2 随堂练习 在“属性”窗口中,将Enable属性设置为false以禁用“Close”按钮 。 3.4.2 随堂练习 在“属性”窗口中,将Enable属性设置为false以禁用“Close”按钮 。 向代码中添加命名空间System.Data.SqlClient,并实例化一个SqlConnection对象,将其命名为cnAdventureWorks 。 设置cnAdventureWorks的连接字符串以使用 (本地) SQL Server和AdventureWorks数据库,Integrated Security为sspi 。 54
随堂练习(续) 在“Open”按钮中添加代码以打开连接。 在“Close”按钮中添加代码以关闭连接。 3.4.2 随堂练习 在“Open”按钮中添加代码以打开连接。 在“Close”按钮中添加代码以关闭连接。 添加代码,使其通过检查当前状态和恰当地启用或禁用两个按钮来处理cnAdventureWorks的StateChange事件 。 55
随堂练习(续) 3.4.2 随堂练习 启动应用程序,并单击“Open”按钮。 单击“Close”按钮 。 停止应用程序的运行 。 56
处理InfoMessage 事件 3.4.3 处理InfoMessage 事件 InfoMessage 事件接收一个InfoMessageEventArgs 参数。InfoMessageEventArgs 对象具有Errors 属性,该属性包含来自数据源的消息集合。 57
处理连接的异常 3.4.4 处理连接的异常 通过捕获System.Data.SqlClient.SqlException类来捕获SqlException异常。当SqlException出现时,该异常对象包含Errors集合 。 属性 描述 Class 获取从SQL Server返回的错误的严重度等级 LineNumber 从包含错误的Transact-SQL批处理命令或存储过程中获取行号 Message 获取描述错误信息的文本 Number 获取一个标识错误类型的数字
处理连接的异常(续) Number属性确定所出现的特定错误。例如,下表列出了一些常用的SQL错误号及其描述 。 3.4.4 处理连接的异常 17 服务器名称无效 4060 数据库名称无效 18456 用户名或密码无效
处理连接的异常(续) 下表描述了通过SqlError类的Class属性所访问的严重度等级 。 3.4.4 处理连接的异常 严重度 描述 行为 1~10 信息消息,指示因用户输入信息中的错误而引起的问题 连接仍然打开,以便继续工作 11~16 由用户生成 可以由用户更正 17~19 软件错误或硬件错误 可以继续工作,但或许不能执行特定语句。SqlConnection仍是打开的 20~25 服务器关闭SqlConnection。用户可以重新打开连接
处理连接的异常(续) 3.4.4 处理连接的异常 SqlException异常可能在应用程序的代码尝试打开连接时出现, 下面给出处理SqlException异常的方法。 1 编写代码, 使其在Try块内执行。 2 为SqlException异常编写Catch语句 。 3 为所要捕获的其他特定异常编写处理程序 。 61
4 5 6 处理连接的异常(续) 3.4.4 处理连接的异常 为所有其他异常编写通用的Catch语句。 在Catch块后编写Finally块 。 6 结束Try块。 62
随堂练习 AdventureWorks公司的IT主管希望其团队所开发的所有应用程序可以提供更好的反馈,使售后服务的工作人员能够跟踪问题 。 3.4.5 随堂练习 AdventureWorks公司的IT主管希望其团队所开发的所有应用程序可以提供更好的反馈,使售后服务的工作人员能够跟踪问题 。 创建新的Windows应用程序项目,并将其命名为CatchingSqlExceptions。 从工具箱中添加两个分别标有“Open”和“Close”的按钮控件,并分别命名为btnOpen和btnClose 。 添加名为txtServerName的文本框控件到窗体上。设置Text属性为“ local ” 。 63
随堂练习(续) 3.4.5 随堂练习 (4) 向代码中添加命名空间System.Data.SqlClient,并实例化一个SqlConnection对象,将其命名为cnAdventureWorks。 (5) 向“Open”按钮添加代码,该段代码设置cnAdventureWorks的ConnectionString属性以连接正在计算机上运行的SQL Server 的Adventure Works数据库,计算机名称在文本框中指定。Integrated Security的值为sspi,并设置连接超时时限为5s。 64
随堂练习(续) 在“Open”按钮中添加代码以打开连接。 3.4.5 随堂练习 在“Open”按钮中添加代码以打开连接。 在“Open”按钮中添加代码来捕获SqlException类型的异常,并查询Errors集合以显示包含错误详细信息的消息,在消息框的标题栏中显示错误的严重度等级。 在“Open”按钮中添加代码来捕获所有其他异常,并显示描述异常的通用消息 。 65
随堂习题(续) 在“Close”按钮中添加代码以关闭和移除 连接 。 3.4.5 随堂练习 在“Close”按钮中添加代码以关闭和移除 连接 。 通过把服务器名更改为“ Manchester ”来运行并测试应用程序,观察所发生的情况。 代码示例C# 代码示例VB 66
处理连接的异常的多媒体演示 多媒体演示
第3章 数据源连接 连接数据源 ConnectionString属性 管理数据源连接 处理连接事件 小结 实验 习题 68
小结 3.5 小结 本章介绍了在应用程序和数据源之间构建联系的Connection对象,了解如何创建和管理Connection对象。 69
第3章 数据源连接 连接数据源 ConnectionString属性 管理数据源连接 处理连接事件 小结 实验 习题 70
实验 3.6 实验 参照实验手册,并在教师的指导下完成实验报告。 71
第3章 数据源连接 连接数据源 ConnectionString属性 管理数据源连接 处理连接事件 小结 实验 习题 72
习题 1. 以下4个连接将创建____连接池 。 连接1 [VB.NET] 3.7 习题 1. 以下4个连接将创建____连接池 。 连接1 [VB.NET] Dim myConnection as New SqlClient.SqlConnection() myConnection.ConnectionString = "User ID=sa;" & _ "Password=wsedrftg;" & _ "Initial Catalog= Students;" & _ "Data Source=mySQLServer;" & _ "Connection TimeOut=30;" [C#] SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = "User ID=sa;" + "Password=wsedrftg;" + "Initial Catalog= Students;" + "Data Source=mySQLServer;" + "Connection TimeOut=30;"; 73
习题(续) 连接2 [VB.NET] Dim myConnection as New SqlClient.SqlConnection() 3.7 习题 连接2 [VB.NET] Dim myConnection as New SqlClient.SqlConnection() myConnection.ConnectionString = "User ID=sa;" & _ "Password= wsedrftg;" & _ "Initial Catalog= Students;" & _ "Data Source=mySQLServer;" & _ "Connection TimeOut=30;" [C#] SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = "User ID=sa;" + "Password=wsedrftg;" + "Initial Catalog= Students;" + "Data Source=mySQLServer;" + "Connection TimeOut=30;"; 74
习题(续) 连接3 [VB.NET] Dim myConnection as New SqlClient.SqlConnection() 3.7 习题 连接3 [VB.NET] Dim myConnection as New SqlClient.SqlConnection() myConnection.ConnectionString = "User ID=sa;" & _ "Password= wsedrftg;" & _ "Initial Catalog=Teachers;" & _ "Data Source=mySQLServer;" & _ "Connection TimeOut=30;" [C#] SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = "User ID=sa;" + "Password=wsedrftg;" + "Initial Catalog= Teachers;" + "Data Source=mySQLServer;" + "Connection TimeOut=30;"; 75
习题(续) 连接4 A. 一个 B . 两个 C. 三个 D. 四个 [VB.NET] 3.7 习题 连接4 [VB.NET] Dim myConnection as New SqlClient.SqlConnection() myConnection.ConnectionString = "User ID=sa;" & _ "Password= wsedrftg;" & _ "Initial Catalog= Teachers;" & _ "Data Source=mySQLServer;" & _ "Connection TimeOut=30;" [C#] SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString = "User ID=sa;" + "Password=wsedrftg;" + "Initial Catalog= Teachers;" + "Data Source=mySQLServer;" + "Connection TimeOut=30;"; A. 一个 B . 两个 C. 三个 D. 四个 76
习题(续) 2. 多选题: ____能连接到SQL Server数据库 。 A. Visual Basic .NET代码 3.7 习题 2. 多选题: ____能连接到SQL Server数据库 。 A. Visual Basic .NET代码 Dim strConn As String strConn = "Driver={SQL Server};Server=(local)\MyServer; " & _ " Database=MyDatabase;Trusted_Connection=Yes; " Dim cn As New OdbcConnection(strConn) cn.Open() 77
习题(续) B. Visual Basic .NET代码 Dim strConn As String 3.7 习题 B. Visual Basic .NET代码 Dim strConn As String strConn ="Driver={SQL Server};Server=(local)\MyServer; " & _ "UID=MyUserName; Trusted_Connection=Yes; " Dim cn As New OdbcConnection(strConn) cn.Open() 78
习题(续) C. Visual C# .NET代码 string strConn; 3.7 习题 C. Visual C# .NET代码 string strConn; strConn = " Driver={SQL Server};Server=(local)\ MyServer; " + " UID=MyUserName;PWD=MyPassword; "; OdbcConnection cn = new OdbcConnection(strConn ); cn.Open(); 79
习题(续) D. Visual C# .NET代码 string strConn; 3.7 习题 D. Visual C# .NET代码 string strConn; strConn = " Driver={SQL Server};Server=(local)\ MyServer; " + " Database= MyDatabase; UID=MyUserName; PWD=MyPassword; "; OdbcConnection cn = new OdbcConnection(strConn); cn.Open(); 80
习题(续) 3. 多选题: 下列代码完成的任务包括______。 3.7 习题 [VB.NET] Dim cnMyDatabase As System.Data.SqlClient.SqlConnection Try cnMyDatabase = New System.Data.SqlClient.SqlConnection() cnMyDatabase.ConnectionString = _ "Data Source=(local);" & _ "Initial Catalog=MyDatabase;" & _ "Integrated Security=SSPI;" cnMyDatabase.Open() 执行数据库操作 Catch XcpInvOp As System.InvalidOperationException MessageBox.Show("请先关闭连接! "”) Catch Xcp As System.Exception MessageBox.Show(Xcp.ToString()) Finally cnMyDatabase.Close() cnMyDatabase.Dispose() cnMyDatabase = Nothing End Try 81
习题(续) 3.7 习题 [C#] System.Data.SqlClient.SqlConnection cnMyDatabase = null; try { cnMyDatabase = new System.Data.SqlClient.SqlConnection(); cnMyDatabase.ConnectionString = "Data Source=(local);" + "Initial Catalog=MyDatabase;" + "Integrated Security=SSPI;"; cnMyDatabase.Open(); //执行数据库操作 } catch (System.InvalidOperationException) MessageBox.Show("请先关闭连接! "); catch(System.Exception Xcp) MessageBox.Show(Xcp.ToString()); finally cnMyDatabase.Close(); cnMyDatabase.Dispose(); cnMyDatabase = null; 82
习题(续) 捕获连接数据库或执行数据库操作时所发生的异常 在信息窗口显示连接数据库或执行数据库操作时所发生的普通异常的内容 3.7 习题 捕获连接数据库或执行数据库操作时所发生的异常 在信息窗口显示连接数据库或执行数据库操作时所发生的普通异常的内容 在信息窗口显示连接数据库或执行数据库操作的结果 如果连接数据库或执行数据库操作时发生无效操作异常,则在信息窗口显示“请先关闭连接!” 83
习题(续) 4. 多选题: 下面关于连接字符串的常用参数的描述,正确的是_____ 。 3.7 习题 4. 多选题: 下面关于连接字符串的常用参数的描述,正确的是_____ 。 A. Data Source属性表示连接打开时所使用的数据库名称 B. Initial Catalog属性表示数据库的类型 C. Trusted Connection参数决定连接是否使用信任连接 D. Provider属性用于设置或返回连接提供程序的名称 84
习题(续) 5. 多选题: 推荐使用显式方式打开和关闭连接的原因是_____ 。 A. 当连接对象超出范围时, 不能隐式地关闭 3.7 习题 5. 多选题: 推荐使用显式方式打开和关闭连接的原因是_____ 。 A. 当连接对象超出范围时, 不能隐式地关闭 B. 采用隐式连接, 可能需要多次打开和关闭 C. 代码更易读 D. 显式地关闭连接不会将连接释放到连接池;有助于程序调试,执行时更为有效 85
习题(续) 6. 多选题: 不推荐在连接字符串中为应用程序存储密码的原因是_____ 。 A. 不方便 B. 不安全 3.7 习题 6. 多选题: 不推荐在连接字符串中为应用程序存储密码的原因是_____ 。 A. 不方便 B. 不安全 C. 通过反编译应用程序能够找到连接字符串 D. 黑客会通过网络得到密码 86
习题(续) 3.7 习题 7. 多选题: 假设您准备开发一个应用程序,该应用程序使用 SqlConnection 对象连接到 Microsoft SQL Server 数据库。连接对象会被放入连接池中。当连接池填满后,连接请求将排队。某些连接请求会遭到拒绝。 需要确保应用程序尽快释放连接并退还给连接池。另外,需要降低连接请求被拒绝的可能性。应该执行的操作包括______ 。 A. 确保每个连接对象完成执行后, 在该对象 上调用 Close ()方法 B. 增大连接字符串内的 Max Pool Size 的值 C. 增大 SqlConnection 对象的 ConnectionTimeout 属性值 D. 改变StateChange状态 87