版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇1第二章第二章 连接数据源连接数据源第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇2能正确选择数据提供程序能正确选择数据提供程序能正确设置连接字符串能正确设置连接字符串能熟练地对连接进行打开与关闭能熟练地对连接进行打开与关闭能处理数据连接过程中出现的常见异常能处理数据连接过程中出现的常见异常第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇3.NET.NET数据提供程序的选择数据提供程序的选择连接字符串的
2、设置连接字符串的设置连接的打开与关闭连接的打开与关闭第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇4什么是数据提供程序? .NET数据提供程序用于连接到数据库,执行命令和查询结果。它为程序开发者处理不同类型的数据库系统提供了不同的程序类,它是ADO.NET架构中的核心组件,使得程序开发者和数据库系统间的操作变得更加简单方便,使程序开发者完全专注于程序其它方面的实现而不需要考虑数据库操作的具体实现细节。第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇5.NET Framework类库中提供了以下.N
3、ET数据提供程序 2.1.1 .NET2.1.1 .NET数据提供程序的数据提供程序的简介简介数据提供程序数据提供程序说明说明SQL Server .NET数据提供程序提供对SQL Server 7.0以上数据库进行访问OLE DB .NET数据提供程序提供对早期SQL Server(SQL Server 6.5以下). Sybase, Oracle, DB2和ACCESS的访问ODBC .NET数据提供程序提供具有ODBC数据源的数据访问Oracle.NET数据提供程序提供对Oracle数据源的数据访问第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计
4、张申勇62.1.2 .NET2.1.2 .NET数据提供程序类数据提供程序类数据提供程序数据提供程序命名空间命名空间类类说明说明SQL Server .NET数据提供程序System.Data.SqlClientsqlConnection建立与SQL Server数据源的连接sqlCommand对SQL Server数据源执行命令sqlDataReader从SQL Server数据源中读取只进且只读的数据流SqlDataAdapter用SQL Server数据源填充 DataSet 并解析更新OLE DB .NET数据提供程序System.Data.OleDbOledbConnection建立
5、与OLEDB数据源的连接OledbCommand对OLEDB数据源执行命令OledbDataReader从OLEDB数据源中读取只进且只读的数据流OledblDataAdapter用OLEDB数据源填充 DataSet 并解析更新第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇7 选择.NET数据提供程序的一般原则 数据源数据源数据提供程序数据提供程序Microsoft Access数据库OLE DB.NET数据提供程序SQL Server 6.5或更底版本OLE DB.NET数据提供程序SQL Server 7.0或SQL Server 200
6、0SQL Server.NET数据提供程序Oracle ServerORACLE.NET数据提供程序2.1.3 2.1.3 选择选择.NET.NET数据提供程序数据提供程序第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇8 当我们选择好一个.NET数据提供程序后,我们需要利用数据提供程序所提供的类的功能来实现数据源的连接。 对于数据源的连接最关键的有两点,第一点是正确选择所需要的数据提供程序,第二点便是正确的设置连接字符串。 第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇9连接字符串连接字符串(C
7、onnection String): 是在连接数据源时所提供的必要的连接信息,其中包括连接的服务器对象,帐号,密码和所访问的数据库对象等信息。是进行数据连接必不可少的信息,对于连接字符串的设置我们可以利用工具和手动的方式建立。 2.2.1 2.2.1 连接字符串连接字符串第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇10参数参数说明说明Provider用于提供连接驱动程序的名称,仅用于OleDbConnection对象,常见的有SQLOLEDB,MSDAORA,Microsoft.Jet.OLEDB.4.0.Data Source指明所需访问的
8、数据源,如是访问SQL Server则是指服务器名称,如是Access则指数据文件名Initial Catalog指明所需访问数据库的名称Password 或PWD指明访问对象所需的密码User ID或UID指明访问对象所需的用户名Connection TimeOut指明访问对象所持续的时间,以秒计算,如果在持续的时间内仍连接不到所访问的对象,则返回失败信息,默认值为15Integrated Security或Trusted Connection集成连接(信任连接),可选True或False,如果为真表示集成Windows验证,此时不需要提供用户名和密码即可登录。2.2.1 2.2.1 连接字
9、符串连接字符串第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇11 【例【例2-1】在路径d:dbtemp.mdb下有ACCESS格式的数据库,请写出连接此数据源的连接字符串. 连接字符串为: “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:dbtemp.mdb” 说明: 1.Provider=Microsoft.Jet.OLEDB.4.0指明本数据源的驱动程序是Microsoft.Jet.OLEDB.4.0,此驱动程序必须存在于你的计算机中。 2. Data Source=d:dbtemp.mdb
10、指明本数据的数据源,由于是ACCESS数据库,所以是一文件名.2.2.1 2.2.1 连接字符串连接字符串第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇12 【例【例2-2】有SQL Server 2000数据源,服务器名为Server1,数据库名为Northwind,采用集成身份证,请写出连接此数据源的连接字符串: 连接字符串为: “Initial Catalog=Northwind;Data Source=server1;integrated Security=True;” 说明: 1. Initial Catalog=Northwind;
11、项指明您要连接的数据库名称为Northwind. 2. Data Source=server1;项指明您连接到的数据库服务器的名称为server1; 3. integrated Security=True;项指明您所登录到数据库的方式是以集成用户的方式登录。 第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇13 【例【例2-3】有一SQL Server 2000数据源,服务器名为Server1,数据库名为Northwind,用户名为sa,密码为sa,请写出连接字符串格式 字符串格式为: “Initial Catalog=Northwind;Dat
12、a Source=server1;UID=sa;PWD=sa;” 说明: 1. Initial Catalog=Northwind;指连的数据库名为Northwind; 2. Data Source=server1;指连的数据库服务器是server1; 3. UID=sa;指登录SQL Server数据库服务器的用户名是sa; 4. PWD=sa;指登录SQL Server数据库服务器的密码是sa;第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇14 【例【例2-4】有一Oracle 9i数据源,数据库服务名为tuop,用户名为system,密码
13、为manager,请写出连接字符串格式: 字符串格式为: “user id=system;data source=tuop;password=manager;” 说明:1. user id=system;项指明访问此数据源的用户名为system;2. data source=tuop;项指明所要访问的数据源为tuop,注意此处的tuop不是服务器名,而是指的是oracle的实例名,更多细节请参考oracle相关知识。3. password=manager;项指明访问此数据源的密码是manager; 第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇
14、15 注意:以上连接字符串中各项需要用分号隔开,每个项的位置没有关系,可以是任意的即下面两种字符串格式是完全等价的: “Initial Catalog=Northwind;Data Source=server1;UID=sa;PWD=sa;” “Initial Catalog=Northwind;UID=sa;PWD=sa; Data Source=server1;” 2.2.1 2.2.1 连接字符串连接字符串第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇16 【例【例2-5】在SQL Server 2000有数据库NorthWind,利用W
15、indows集成验证方式登录,请创建此连接。 第一步:打开服务器资源管理器 方法:在开发环境菜单栏中选择视图,选择服务器资源管理器,即可打开服务器资源管理器。 第二步:创建连接,选择数据连接,单击右键,选择添加连接 第三步:设置连接属性 第四步:将所建立的数据库连接拖放到窗体中 2.2.2 2.2.2 设计时设计时创建创建连接连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇17 【例【例2-6】:在C:authors.mdb有一ACCESS数据文件,请利用工具的方式建立访问ACCESS数据库的连接对象 第一步:添加连接, 第二步:选择数据提供
16、程序, 第三步:选择或输入数据文件名C:authors.mdb,点击测试. 第四步:通过测试后,在服务器资源管理器中便可查看该文件中存在的对象, 第五步:将建立好的连接拖动到窗体中 到此我们便建立好了一个名为OleDbConnection1的对象.2.2.2 2.2.2 设计时设计时创建创建连接连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇18 【例【例2-7】:有一Oracle数据库,实例名为tuop,用户名为system,密码为manager,请利用工具的方式建立连接此实例的连接对象。 第一步:添加连接 第二步:选择数据提供程序 第三步
17、:输入连接信息 第四步:连接成功后,拖动连接到窗体 便建立了一个名为OracleConnection1的连接对象2.2.2 2.2.2 设计时设计时创建创建连接连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇19 虽然服务器资源管理器能够非常方便快捷的建立数据源的连接,但却不能灵活有效的为程序开发者服务,特别是我们需要动态的添加或删除数据源连接的时候,这时,我们需要通过代码的方式创建数据源的连接,这样才能达到随心所欲的地步 .2.2.3 2.2.3 运行时创建连接运行时创建连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-
18、ADO.NET程序设计 张申勇20 【例【例2-8】.创建连接到SQL Server 7.0以上的连接,数据库名为Northwind,服务器名为Zhuos,用户名为sa, 密码为 sa,代码如下: SqlConnection conn; conn=new SqlConnection(); conn.ConnectionString =Initial Catalog=Northwind; +Data Source=zhuos;UID=sa;PWD=sa; 或者也可以用下面的语句来实现: SqlConnection conn=new SqlConnection(); conn.Connection
19、String =Initial Catalog=Northwind; +Data Source=zhuos;UID=sa;PWD=sa;2.2.3 2.2.3 运行时创建连接运行时创建连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇21 需要注意的是需要注意的是:在使用SqlConnection类前要注意引用System.Data.SqlClient命名空间命令如下: using System.Data.SqlClient; 或者是通过以下语句实现: System.Data.SqlClient.SqlConnection conn; Conn
20、=new System.Data.SqlClient.SqlConnection(); conn.ConnectionString =Initial Catalog=Northwind; +Data Source=zhuos;UID=sa;PWD=sa;2.2.3 2.2.3 运行时创建连接运行时创建连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇22 【例【例2-9】创建连接到ACCESS数据库的连接,数据文件在D:authors.mdb. OleDbConnection conn; conn=new OleDbConnection();
21、conn.ConnectionString =Provider=Microsoft.Jet.OLEDB.4.0; + Data Source=d:/authors.mdb;2.2.3 2.2.3 运行时创建连接运行时创建连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇23 【例【例2-10】创建连接到Orace数据库的连接,数据库实例为tuop,用户名为system,密码为:manager. OracleConnection conn; conn=new OracleConnection(); conn.ConnectionString =u
22、ser id=system;data source=tuop;password=manager;2.2.3 2.2.3 运行时创建连接运行时创建连接第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇24 连接类connection主要有以下三个方法: Open():表示打开一个已建立好的连接对象 Close():表示关闭一个已打开的连接对象,将连接释放到服务器的连接池中 Dispose():移除连接,从服务器的连接池中删除连接2.3.1 2.3.1 连接连接类的方法类的方法第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.N
23、ET程序设计 张申勇25 【例【例2-11】:有一SQL Server 2000数据库,服务器名为zhuos,现要打开此服务器上的Northwind数据库,用户名和密码都是sa,请写出完成此操作的代码。 System.Data.SqlClient.SqlConnection conn; conn=new System.Data.SqlClient.SqlConnection(); conn.ConnectionString =Initial Catalog=Northwind; +Data Source=zhuos;UID=sa;PWD=sa; conn.Open(); /此处放置数据处理的代
24、码此处放置数据处理的代码 conn.Close();2.3.1 2.3.1 连接连接类的方法类的方法第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇26 【例【例2-12】有一Oracle 9i数据源,数据库服务名为tuop,用户名为system,密码为manager,请写出实现打开此数据源连接的代码. System.Data.OracleClient.OracleConnection conn; conn=new System.Data.OracleClient.OracleConnection(); conn.ConnectionString
25、 =user id=system;data source=tuop;password=manager; conn.Open(); /此处放置处理此处放置处理oracle数据的代码数据的代码 conn.Close();2.3.1 2.3.1 连接连接类的方法类的方法第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇27 【例【例2-13】有一ACCESS数据源,数据文件为d:authors.mdb,请写出实现打开此数据源连接的代码. OleDbConnection conn; conn=new OleDbConnection(); conn.Conn
26、ectionString =Provider=Microsoft.Jet.OLEDB.4.0; +Data Source=d:/authors.mdb; conn.Open(); /此处放置处理此处放置处理ACCESS数据库的代码数据库的代码 conn.Close();2.3.1 2.3.1 连接连接类的方法类的方法第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇28 【例【例2-14】有一SQL Server 2000数据库,服务器名为zhuos,现要打开此服务器上的Northwind数据库,用户名和密码都是sa,请用工具的方式建立连接对象并打
27、开和关闭连接. 这个例子可以分为两步来完成, 第一步:建立连接对象,具体操作请参照例2-1,假设所建立的连接的对象名称为SqlConnection1。 第二步,连接对象的打开和关闭 打开连接对象请直接用代码: this.sqlConnection1.Open(); 关闭连接对象请直接用代码:this.sqlConnection1.Close();2.3.1 2.3.1 连接连接类的方法类的方法第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇29 【例【例2-15】有一Oracle 9i数据源,数据库服务名为tuop,用户名为system,密码为m
28、anager请用工具的方式建立连接对象并打开和关闭连接 这个例子也可以分为两步: 第一步:建立连接对象,具本操作步骤请参照例2-7 第二步:连接对象的打开与关闭 打开连接对象请使用代码:this.OracleConnection1.Open(); 关闭连接对象请使用代码:this.OracleConnection1.Close();2.3.1 2.3.1 连接连接类的方法类的方法第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇30 在Connection类中,主要有两个事件,一是当连接状态发生改变时触发的StateChange事件,另一个是当连接
29、对象返回一个警告或信息性消息时触发的InfoMessage事件2.3.2 2.3.2 连接类连接类的事件的事件第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇31 【例【例2-16】:请通过连接对象的StateChange事件来获得它的状态信息。2.3.2 2.3.2 连接类连接类的事件的事件第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇32private void Form1_Load(object sender, System.EventArgs e)this.CenterToScreen()
30、;this.Text=连接状态改变示例连接状态改变示例;this.sqlConnection1.StateChange +=new System.Data.StateChangeEventHandler(this.conn_StateChange );private void conn_StateChange(object sneder,System.Data.StateChangeEventArgs e)label1.Text=连接对象当前的状态是:连接对象当前的状态是:+e.CurrentState.ToString();label2.Text=连接对象原始的状态是连接对象原始的状态是:+
31、e.OriginalState.ToString();private void btnCloseConn_Click(object sender, System.EventArgs e)this.sqlConnection1.Close();this.btnCloseConn.Enabled =false;this.btnOpenConn.Enabled=true;private void btnOpenConn_Click(object sender, System.EventArgs e)this.sqlConnection1.Open();this.btnCloseConn.Enable
32、d =true;this.btnOpenConn.Enabled=false;2.3.2 2.3.2 连接类连接类的事件的事件第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇33 异常(Exception)是指在程序运行过程当中所遇到的不可预期的错误。异常是绝对的,不管你的程序编制的如何的好,都可能会因为在不同的环境等因素导致你的程序出现异常,所以一个好的程序应该有好的异常处理措施,以确保用户在遇到异常时能知道如何去处理或寻求帮助。 在ADO.NET中,程序设计的一般性异常可以通过异常类Exception来处理,同时ADO.NET为SQL Ser
33、ver提供了专用的结构化异常处理类SqlException,以及用于收集与SQL Server返回的警告或错误有关的信息的SqlError类。 推荐在SQL编程的过程中使用SqlException类及SqlError类,因为这此类对错误的描述更为详细具体。 第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇34在C#中处理程序运行的异常可以通过trycatchfinally语句来实现。其语法如下:try /可能会出现异常的代码可能会出现异常的代码catch (exception-declaration-1)/出现异常后进行的处理代码出现异常后进行的
34、处理代码1 catch (exception-declaration-2) /出现异常后进行的处理代码出现异常后进行的处理代码2 .finally/不管是否出现异常都需要执行的代码不管是否出现异常都需要执行的代码2.4.1 2.4.1 结构化异常处理结构化异常处理第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇35 【例【例2-17】请写出打开数据源连接的异常处理代码。 如图:2.4.2 2.4.2 处理异常和消息事件处理异常和消息事件第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇36privat
35、e void button1_Click(object sender, System.EventArgs e)System.Data.SqlClient.SqlConnection conn;conn=new System.Data.SqlClient.SqlConnection();conn.ConnectionString =Initial Catalog=Northwind; +Data Source=zhuos;UID=sa;PWD=sa;try/可能会发生异常的代码可能会发生异常的代码conn.Open(); catch (System.Data.SqlClient.SqlExcep
36、tion SqlE) /此处捕获的是特殊的异常此处捕获的是特殊的异常/以下代码用于当产生以下代码用于当产生SQL异常时需处理的语句异常时需处理的语句MessageBox.Show(SqlE.ToString(),SqlError,MessageBoxButtons.OK,MessageBoxIcon.Information );catch (System.Exception NormalE) /此处捕获的是一般性异常此处捕获的是一般性异常/以下代码用于当产生一般性异常时需处理的语句以下代码用于当产生一般性异常时需处理的语句MessageBox.Show(NormalE.ToString() ,
37、NormalError,MessageBoxButtons.OK,MessageBoxIcon.Information );finally/此处是不管是否发生异常都需要处理的代码此处是不管是否发生异常都需要处理的代码/不管是否发生异常都要关闭数据库的连接不管是否发生异常都要关闭数据库的连接conn.Close();2.4.2 2.4.2 处理异常和消息事件处理异常和消息事件第二章第二章 连接数据源连接数据源2022-5-8数据库访问技术-ADO.NET程序设计 张申勇37在数据的错误处理过程中还经常用到InfoMessage事件,当数据库服务器需要传递隐含的重要信息给用户时,将触发此事件在此事件中,我们可以通过如SqlError对象的相关属性返回由于此次错误的错误级别或错误信息在InfoMessage事件中,我们经常用到如下的语句用于提示此出错的错语信息和错误级别froeach (System.Data.SqlClient.SqlError se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 44859-2024武术太极剑
- GB/T 22750.1-2024外科植入物陶瓷材料第1部分:高纯氧化铝陶瓷材料
- GB/T 44700-2024国民体质测试器材通用要求
- 2024年度企业网络安全评估与提升合同
- 统编人教版六年级语文上册《语文园地六》精美课件
- 2024年度卫星导航与位置服务总承包合同2篇
- 民宿承包经营合同2
- 装潢材料购销合同范本
- 2024年度软件开发项目进度与质量保证合同2篇
- 2024版汽车制造公司与自动驾驶技术研发合同
- 2024年秋季新人教版三年级上册英语全册教案
- 食品安全考核制度
- 八年级上部编名著阅读《昆虫记》章节概括
- 酬金制物业服务合同协议书
- 文旅局公共文化服务工作总结及工作计划书
- 《思想道德修养与法律基础》课件-4发扬中国革命道德
- 骨伤科疾病的中医治疗特点分析与总结
- 《网络心理学》第六课-网络与注意力-何凌南-13-11-1
- 乡镇卫生院聘用合同
- DZ∕T 0142-2010 航空磁测技术规范(正式版)
- 部编版四年级语文上册第8单元大单元整体教案设计课件(教案配套)
评论
0/150
提交评论