亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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 表示該連接與數據源已中斷。只有當連接打開后再與數據庫失去連接才會導致這種情況??梢躁P閉處于這種狀態的連接,然后重新打開。
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構造方法的參數?;蛘咭部梢允褂孟旅娴姆椒ǎ?/p>

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對象的狀態發生改變時觸發??梢允褂檬录腟tateChangeEventArgs參數中的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);
  }
}

運行結果如下:

數據連接對象運行結果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日本啪啪无遮挡网站| 久久久久五月天| 国产在线视频欧美| 亚洲国产欧美一区二区三区同亚洲| 日韩中文在线中文网在线观看| 夜夜狂射影院欧美极品| 欧美猛交免费看| 91精品国产91久久久久久吃药| 欧美成年人视频网站| 国产欧美日韩精品丝袜高跟鞋| 久久国产精品久久久久久久久久| 欧美性色19p| 热久久免费国产视频| 欧美精品在线免费| 日韩有码视频在线| 久久中文久久字幕| 亚洲国产小视频在线观看| 成人激情视频在线| 久久精品国产亚洲一区二区| 欧美理论电影在线播放| 亚洲电影免费观看高清| 亚洲精品在线91| 91精品久久久久久综合乱菊| 国模吧一区二区三区| 亚洲字幕在线观看| 久久免费视频在线| 高清一区二区三区日本久| 亚洲欧美日韩成人| 97色在线视频| 91色视频在线导航| 夜夜嗨av色综合久久久综合网| 国产成人精品a视频一区www| 久久99精品视频一区97| 日产日韩在线亚洲欧美| 国产精品一二三在线| 日韩电影大全免费观看2023年上| 亚洲va欧美va国产综合剧情| 亚洲成人亚洲激情| 亚洲第一福利网| 色av吧综合网| 国产精品久久久久久久久久| 国产日韩欧美一二三区| 国产精品1234| 欧美午夜视频在线观看| 成人h片在线播放免费网站| 久久99热精品这里久久精品| 欧美中文字幕在线播放| 日韩精品在线免费| 九九九久久久久久| 亚洲精品大尺度| 中文字幕欧美日韩精品| 777国产偷窥盗摄精品视频| 日韩精品中文字幕在线观看| 色综久久综合桃花网| 91理论片午午论夜理片久久| 色噜噜国产精品视频一区二区| 一区二区在线免费视频| 亚洲激情第一页| 91社影院在线观看| 亚洲aⅴ男人的天堂在线观看| 成人在线小视频| 久久久久久久久久久免费| 色悠久久久久综合先锋影音下载| 色爱av美腿丝袜综合粉嫩av| 久久人人97超碰精品888| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲成人网av| 欧美国产亚洲精品久久久8v| 免费成人高清视频| 日韩在线视频观看正片免费网站| 91精品视频网站| 日韩高清电影好看的电视剧电影| 欧美日韩一区二区在线| 日韩激情视频在线播放| 久久99久久亚洲国产| 精品国产一区二区在线| 国产一区二区成人| 久久夜色撩人精品| 日本欧美黄网站| 欧美成人合集magnet| 欧美第一黄网免费网站| 一级做a爰片久久毛片美女图片| 日韩亚洲欧美成人| 亚洲国产欧美精品| 九九热这里只有精品免费看| 欧美福利视频在线| 国产一区二区三区三区在线观看| 欧美日韩成人网| 日韩免费在线免费观看| 国产suv精品一区二区三区88区| 日韩激情第一页| 国产一区二区日韩精品欧美精品| 精品国产拍在线观看| 狠狠色狠狠色综合日日小说| 亚洲欧美成人在线| 国产日韩换脸av一区在线观看| 久久激情五月丁香伊人| 久久成人av网站| 国产v综合ⅴ日韩v欧美大片| 久久中文字幕视频| 国产综合久久久久久| 在线精品播放av| 日韩成人在线视频| 欧美高跟鞋交xxxxxhd| 亚洲国产精品久久久久秋霞蜜臀| 成人网在线观看| 欧美色道久久88综合亚洲精品| 97香蕉久久夜色精品国产| 91黄色8090| 九九精品在线视频| 国产精品一区二区久久久久| 国产精品美女www| 68精品国产免费久久久久久婷婷| 亚洲久久久久久久久久| 亚洲人成欧美中文字幕| 欧美综合一区第一页| 日韩中文在线中文网三级| 亚洲人永久免费| 亚洲电影免费观看高清完整版在线观看| 在线电影欧美日韩一区二区私密| 精品日韩中文字幕| 色黄久久久久久| 国产精品亚洲аv天堂网| 色黄久久久久久| 97视频人免费观看| 欧美激情区在线播放| 日韩在线观看免费网站| 久久久久五月天| 欧美理论电影在线播放| 亚洲www在线观看| 国产一区二区丝袜| 国产精品欧美激情| 国产91精品最新在线播放| 日韩高清电影免费观看完整版| 一区二区亚洲精品国产| 精品久久久久久电影| 亚洲成人在线网| 日本不卡视频在线播放| xxx欧美精品| 97在线视频免费看| 欧美网站在线观看| 亚洲美女av网站| 欧美日韩国产黄| 中文字幕精品在线视频| 国产成人自拍视频在线观看| 深夜精品寂寞黄网站在线观看| 日韩在线高清视频| 欧美成人免费一级人片100| 黑人巨大精品欧美一区二区免费| 欧美电影免费观看| 欧美大成色www永久网站婷| 97视频在线看| 国产精品精品视频一区二区三区| 欧美贵妇videos办公室| 精品av在线播放| 亚洲丁香久久久| 18性欧美xxxⅹ性满足| 亚洲欧美自拍一区| 欧美精品videosex性欧美| 亚洲精品日韩丝袜精品| 国产精品扒开腿做| 自拍偷拍亚洲在线| 亚洲成人免费网站| 久久在精品线影院精品国产|