C#数据库编程之连接对象Connection使用详解.docx
-
资源ID:4883257
资源大小:124.41KB
全文页数:5页
- 资源格式: DOCX
下载积分:15金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
C#数据库编程之连接对象Connection使用详解.docx
在C#数据库编程中,Connection对象用来连接数据源,针对不同的数据库连接模式,Connection有以下三种形式:(1) SqlConnection该对象是专为连接Sql Server数据库而设计的(2) OleDbConnection该对象可以连接任何类型的数据库(3) OdbcConnection在具体学习内容之前,首先看一个例子,通过这个例子首先了解以下C#编写数据库应用程 序的方法。本例是从Access数据库中将学生的信息读取出来并打印在屏幕中。程序的源代码如下:首先引入需要的命名空间using System;using System.Data;using System.Data.OleDb; /使用 OleDb 连接模式定义一个类class Studentstatic void Main()定义连接字符串,该连接字符串是使用OleDb连接模式连接Access数据库的方法stringconnString="provider=Microsoft.Jet.OleDb.4.0;DataSource=E:Lessonmydb.mdb;"/定义连接对象OleDbConnection oConn = new OleDbConnection(connString);oConn.Open();/打开连接对象OleDbCommand oCmd = new OleDbCommand(); 定义命令对象oCmd.CommandText = "SELECT * FROM student”;/指定命令对象的命令文本oCmd.Connection = oConn; 指定命令对象使用的连接OleDbDataReader odr; 定义数据读取器odr = oCmd.ExecuteReader(); /执行命令对象,并用odr指向结果集if (odr != null) /如果 odr 不为空while (odr.Read() 调用数据读取器的Read方法读取一条数据Console.Write('学号:"+ odr"sid".ToString(); 使用 odrstring name方式读取数据Console.WriteLine("t姓名:"+ odr1.ToString(); 使用 odrint index方式读取数据 odr.Close(); /关闭数据读取器if (oConn.State != ConnectionState.Closed) 如果连接不是关闭状态则将连接关闭 oConn.Close();本程序的运行结果图示如下:名名名名名. Lr一Lr一Lr一 rE rE 姓姓姓姓姓.C:/j in d Qwssyste m 3 2c f d. exe号号号号号按学学学学学请续 继 0102030405意 任乐贺帅鑫晓永伟王王王边伊1、Connection对象的使用对于不同的数据库连接模式,Connection对象具有不同的类形式:(1) SqlClient 连接模式对应的 Connection 形式为 SqlConnection(2) OleDb 连接模式对应的 Connection 形式为 OleDbConnection(3) Odbc 连接模式对应的 Connection 形式为 OdbcConnection2、Connection 的属性Connection 的常用属性有 ConnectionString、ConnectionTimeout、DataBase> DataSource 和 State o(1) ConnectionString为连接字符串,用来获取或设置用于打开数据库的字符串。(2) ConnectionTimeout 属性连接超时时间,用来获取在尝试建立连接时终止尝试,并生成错误之前所等待的时间。(3) DataBase 属性该属性用来获取当前数据库或链接打开后要使用的数据库名称。(4) DataSource 属性该属性用来设置要链接的数据源实例名称,如SQL Server的Local服务实例。(5) State 属性该属性是一个枚举值,用来指示当前数据库连接所处的状态。该属性为只读值。其取值有以 下几种:属性值具体含义Broken表示该连接与数据源已中断。只有当连接打开后再与数据库失去连接才会导致这种 情况。可以关闭处于这种状态的连接,然后重新打开。Closed该链接是否处于关闭状态,如处于关闭状态,则其值为trueConnecting指示该连接是否正与数据源连接,如果是则其值为trueExecuting该连接对象正在执行数据库的操作命令Fetching该连接对象正在检索数据Open该连接处于打开状态3、Connection对象的方法不管是 SqlConnection、OleDbConnection,还是 OdbcConnection 都提供了下面两类方法:(1)构造方法Connection对象的构造方法有两种,一种是不带参数的构造方法,一种是带一个字符串类型 参数的构造方法。假设使用OleDb连接模式,则创建Connection的方法为:OleDbConnection oConn = new OleDbConnection();oConn.ConnectionString="Provider=Microsoft.Jet.OleDb.4.0;DataSource=E:Lessonmydb.mdb;"上面使用的没带参数的构造方法创建了 一个 OleDbConnection的一个实例oConn,并通过oConn的ConnectionString属性给出连接字符 串。或者使用下面的方法:string connString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=E:Lessonmydb.mdb;”;OleDbConnection oConn = new OleDbConnection(connString);上面的例子中首先定义了一个 连接字符串connString,在创建 OleDbConnection实例oConn时直接将connString作为 OleDbConnection构造方法的参数。或者也可以使用下面的方法:OleDbConnection oConn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source=E:Lessonmydb.mdb;");即在创建连接实例的同时在构造方法中直接使用连接字符 串给出参数的值。(2) Open 方法Open方法用于打开连接对象,其使用形式如下:oConn.Open();上面的例子中,oConn为创建的连接实例。(3) Close 方法Close方法用于关闭连接对象,其使用形式如下:oConn.Close();上面的例子中oConn为创建的连接实例。4、Connection对象的事件.NET Framework数据提供程序中的Connection对象有两个事件:InfoMessage和StateChange。(1) InfoMessage 事件当数据源中有警告或返回信息性消息时,将触发本事件,即数据源中存在不会引发异常的消 息。InfoMessage事件接收InfoMessageEventArgs对象,该对象主要有Source属性(发送消 息的数据提供程序)、Message属性(消息的描述)、ErrorCode (消息编码)、Errors对象(包 含Count错误数量属性)。(2) StateChange 事件StateChange事件在Connection对象的状态发生改变时触发。可以使用事件的 StateChangeEventArgs参数中的OriginalState和CurrentState属性获取原状态信息和当前状态 信息。下面使用一个例子来说明上面的知识点:using System;using System.Data;using System.Data.OleDb;class TestConnectionstatic void Main()stringconnString="provider=Microsoft.Jet.OleDb.4.0;DataSource=E:Lessonmydb.mdb;"OleDbConnection oConn = new OleDbConnection(connString);预定连接对象状态发生改变时的处理程序oConn.StateChange += new StateChangeEventHandler(oConn_StateChange);预定InfoMessage事件处理程序oConn.InfoMessage += new OleDbInfoMessageEventHandler(oConn_InfoMessage);oConn.Open();/ 打开连接Console.WriteLine("打开连接后连接对象的信息");Console.WriteLine('连接对象的当前状态为:"+ oConn.State);Console.WriteLine('连接字符串为:"+ oConn.ConnectionString);Console.WriteLine('连接对象的数据源为:"+ oConn.DataSource);Console.WriteLine('连接对象的数据库为:"+ oConn.Database.ToString();Console.WriteLine('连接对象的超时时间为:"+ oConn.ConnectionTimeout + "秒");Console.WriteLine(,连接对象的数据提供者为:"+ oConn.Provider);Console.WriteLine('连接对象的为数据提供者版本为:"+ oConn.ServerVersion);if (oConn.State != ConnectionState.Closed) 关闭连接oConn.Close();Console.WriteLine("关闭连接后连接对象的状态");Console.WriteLine("n 连接对象的当前状态为:"+ oConn.State);/StateChange事件处理程序static void oConn_StateChange(object sender, StateChangeEventArgs e)Console.WriteLine("StateChange");Console.WriteLine("提示:连接 对象状态发生改变由0变为1。", e.OriginalState, e.CurrentState);/InfoMessage事件处理程序static void oConn_InfoMessage(object sender, OleDbInfoMessageEventArgs e)Console.WriteLine("InfoMessage");Console.WriteLine('数据源返回的信息:"+ e.Message);Console.WriteLine('返回信息的对象名称:"+ e.Source);运行结果如下:本文由 转载