麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

C#數據庫編程之連接對象Connection使用詳解

2023-05-11 12:02:24
字體:
來源:轉載
供稿:網友

在C#數據庫編程中,Connection對象用來連接數據源,針對不同的數據庫連接模式,Connection有以下三種形式:

(1)SqlConnection 該對象是專為連接Sql Server數據庫而設計的

(2)OleDbConnection 該對象可以連接任何類型的數據庫

(3)OdbcConnection

在具體學習內容之前,首先看一個例子,通過這個例子首先了解以下C#編寫數據庫應用程序的方法。

本例是從Access數據庫中將學生的信息讀取出來并打印在屏幕中。

程序的源代碼如下:

//首先引入需要的命名空間
using System;
using System.Data;
using System.Data.OleDb; //使用OleDb連接模式
//定義一個類
class Student
{
  static void Main()
  {
    //定義連接字符串,該連接字符串是使用OleDb連接模式連接Access數據庫的方法
    string connString = "provider=Microsoft.Jet.OleDb.4.0;Data Source=E://Lesson//mydb.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()); //使用odr[string name]方式讀取數據
        Console.WriteLine("/t姓名:" + odr[1].ToString()); //使用odr[int index]方式讀取數據
      }
    }
    odr.Close(); //關閉數據讀取器
    if (oConn.State != ConnectionState.Closed) //如果連接不是關閉狀態則將連接關閉
      oConn.Close();
  }
}

本程序的運行結果圖示如下:

數-據庫操作案例1運行結果

1、Connection對象的使用

對于不同的數據庫連接模式,Connection對象具有不同的類形式:

(1)SqlClient連接模式對應的Connection形式為SqlConnection

(2)OleDb連接模式對應的Connection形式為OleDbConnection

(3)Odbc連接模式對應的Connection形式為OdbcConnection

2、Connection的屬性

Connection的常用屬性有ConnectionString、ConnectionTimeout、DataBase、DataSource和State。

(1)ConnectionString

為連接字符串,用來獲取或設置用于打開數據庫的字符串。

(2)ConnectionTimeout屬性

連接超時時間,用來獲取在嘗試建立連接時終止嘗試,并生成錯誤之前所等待的時間。

(3)DataBase屬性

該屬性用來獲取當前數據庫或鏈接打開后要使用的數據庫名稱。

(4)DataSource屬性

該屬性用來設置要鏈接的數據源實例名稱,如SQL Server的Local服務實例。

(5)State屬性

該屬性是一個枚舉值,用來指示當前數據庫連接所處的狀態。該屬性為只讀值。其取值有以下幾種:

 

屬性值 具體含義
Broken 表示該連接與數據源已中斷。只有當連接打開后再與數據庫失去連接才會導致這種情況。可以關閉處于這種狀態的連接,然后重新打開。
Closed 該鏈接是否處于關閉狀態,如處于關閉狀態,則其值為true
Connecting 指示該連接是否正與數據源連接,如果是則其值為true
Executing 該連接對象正在執行數據庫的操作命令
Fetching 該連接對象正在檢索數據
Open 該連接處于打開狀態

3、Connection對象的方法

不管是SqlConnection、OleDbConnection,還是OdbcConnection都提供了下面兩類方法:

(1)構造方法

Connection對象的構造方法有兩種,一種是不帶參數的構造方法,一種是帶一個字符串類型參數的構造方法。

假設使用OleDb連接模式,則創建Connection的方法為:

OleDbConnection oConn = new OleDbConnection( );
oConn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=E://Lesson//mydb.mdb;";

上面使用的沒帶參數的構造方法創建了一個OleDbConnection的一個實例oConn,并通過oConn的ConnectionString屬性給出連接字符串。或者使用下面的方法:

string connString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=E://Lesson//mydb.mdb;";
OleDbConnection oConn = new OleDbConnection(connString);

上面的例子中首先定義了一個連接字符串connString,在創建OleDbConnection實例oConn時直接將connString作為OleDbConnection構造方法的參數。或者也可以使用下面的方法:

OleDbConnection oConn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source=E://Lesson//mydb.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 TestConnection
{
  static void Main()
  {
    string connString = "provider=Microsoft.Jet.OleDb.4.0;Data Source=E://Lesson//mydb.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);
  }
}

運行結果如下:

數據連接對象運行結果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产日本欧美在线观看 | 看国产毛片 | 欧美人xxx | 91热久久免费频精品黑人99 | 国产精品欧美久久久久一区二区 | 成人精品久久久 | 天堂在线中文资源 | 看免费黄色大片 | 国产人妖一区二区 | 超碰97人| 久久在线 | 国产精品久久久久久模特 | 免费一级电影 | 末成年女av片一区二区 | 国产亚洲高清视频 | 久久精品视频亚洲 | 欧美成人精品欧美一级乱黄 | 国产乱乱视频 | 精品久久久久久成人av | 可以看逼的视频 | 成人免费福利网站 | 成人免费自拍视频 | 亚洲免费网站 | av电影免费播放 | 久久综合网址 | 久久毛片 | 久久精品一级 | 久久国产精品网 | 国产色91| 亚洲精品成人在线视频 | 久久精品4| 高清视频91 | 国产午夜亚洲精品理论片大丰影院 | 免费在线观看成人网 | 日本精品中文字幕 | 99热1| 一区二区三区精品国产 | 99精品国产一区二区三区 | 久久久久久久黄色片 | 毛片a级毛片免费播放100 | 99精品视频一区二区 |