九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ADO.NET入門教程(四) 品味Connection對象

摘要

前幾篇文章,我都沒有詳細(xì)講解Data Provider核心對象,因?yàn)槲蚁M谥v解這些對象之前,讓大家對一些基礎(chǔ)的概念有很好的認(rèn)識(shí)。在上一篇文章《你必須知道的ADO.NET(三) 連接字符串,你小覷了嗎》中,我詳細(xì)講解了連接字符串,相信大家都和我一樣意識(shí)到它的重要性了。如果說連接字符串是打開數(shù)據(jù)源大門的鑰匙,那么我今天要講解的則是如何用這把鑰匙打開數(shù)據(jù)源的大門。作為Data Provider的第一核心對象,Connection對象肩負(fù)起連接數(shù)據(jù)源的重任。下面就讓我們好好認(rèn)識(shí)這位重量級(jí)人物吧!


目錄


1. 理解Connection對象

Connection對象,顧名思義,表示與特定數(shù)據(jù)源的連接。如果把數(shù)據(jù)源比作大門,那么連接字符串則是鑰匙,而連接對象則是拿著鑰匙開門的人。對于ADO.NET而言,不同的數(shù)據(jù)源,都對應(yīng)著不同的Connection對象。具體Connection對象如下表:

名稱命名空間描述
SqlConnectionSystem.Data.SqlClient表示與SQL Server的連接對象  
OleDbConnectionSystem.Data.OleDb表示與OleDb數(shù)據(jù)源的連接對象                   
OdbcConnectionSystem.Data.Odbc表示與ODBC數(shù)據(jù)源的連接對象                                                                         
OracleConnectionSystem.Data.OracleClient表示與Orale數(shù)據(jù)庫的連接對象

 不管哪種連接對象,它都繼承于DbConnection類。我們看看DbConnection類的實(shí)現(xiàn)結(jié)構(gòu):

public abstract class DbConnection : Component, 
IDbConnection, IDisposable

從上面,我們可以看出DbConnection是抽象基類,并且繼承Compoent,IDbConnection,IDisposable類。由于DbConnection類是抽象基類,因此它不能實(shí)例化。DbConnection類封裝了很多重要的方法和屬性,下面我將詳細(xì)講解幾個(gè)重要的方法和屬性。

 

2. 必須掌握的幾個(gè)方法

Open: 使用 ConnectionString 所指定的設(shè)置打開數(shù)據(jù)庫連接。

Dispose: 釋放由 Component 使用的所有資源。

Close: 關(guān)閉與數(shù)據(jù)庫的連接。 此方法是關(guān)閉任何已打開連接的首選方法。Close 方法回滾任何掛起的事務(wù)。 然后,它將連接釋放到連接池,或者在連接池被禁用的情況下關(guān)閉連接。

 

3. 必須掌握的幾個(gè)屬性

Database: 在連接打開之后獲取當(dāng)前數(shù)據(jù)庫的名稱,或者在連接打開之前獲取連接字符串中指定的數(shù)據(jù)庫名。

DataSource: 獲取要連接的數(shù)據(jù)庫服務(wù)器的名稱。

ConnectionTimeOut: 獲取在建立連接時(shí)終止嘗試并生成錯(cuò)誤之前所等待的時(shí)間。

ConnectionString: 獲取或設(shè)置用于打開連接的字符串。

State: 獲取描述連接狀態(tài)的字符串。

 

4. 說說ConnectionState

上面我們知道,State屬性描述了與數(shù)據(jù)源的連接的當(dāng)前狀態(tài)。ConnectionState是一個(gè)枚舉類型。它包括以下成員:

Closed: 連接處于關(guān)閉狀態(tài)。

Open: 連接處于打開狀態(tài)。

Connecting: 連接對象正在與數(shù)據(jù)源連接。

Executing: 連接對象正在執(zhí)行命令。

Fetching: 連接對象正在檢索數(shù)據(jù)。

Broken: 與數(shù)據(jù)源的連接中斷。

 

5. 實(shí)例:連接SQL Server的SqlConnection對象

上面說了那么多理論知識(shí),下面就講一個(gè)連接SQL Server的實(shí)例吧!代碼如下:

 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data;
6 using System.Data.SqlClient;
7
8 namespace Connection
9 {
10 class Program
11 {
12 static void Main(string[] args)
13 {
14 //構(gòu)造連接字符串
15 SqlConnectionStringBuilder connStr = new SqlConnectionStringBuilder();
16 connStr.DataSource = @".\SQLEXPRESS";
17 connStr.InitialCatalog = "master";
18 connStr.IntegratedSecurity = true;
19
20 SqlConnection conn = new SqlConnection();//創(chuàng)建連接對象
21 conn.ConnectionString = connStr.ConnectionString;//設(shè)置連接字符串
22
23 conn.Open();//打開連接
24
25 if(conn.State == ConnectionState.Open)
26 {
27 Console.WriteLine("Database is linked.");
28 Console.WriteLine("\nDataSource:{0}",conn.DataSource);
29 Console.WriteLine("Database:{0}",conn.Database);
30 Console.WriteLine("ConnectionTimeOut:{0}",conn.ConnectionTimeout);
31 }
32
33 conn.Close();//關(guān)閉連接
34 conn.Dispose();//釋放資源
35
36 if(conn.State == ConnectionState.Closed)
37 {
38 Console.WriteLine("\nDatabase is closed.");
39 }
40
41 Console.Read();
42 }
43 }
44 }

結(jié)果:

 

6. 編寫優(yōu)雅而又安全的代碼

(1)添加try...catch塊

我們知道連接數(shù)據(jù)庫時(shí),可能出現(xiàn)異常,因此需要添加異常處理。對于C#來說,典型的異常處理是添加try...catch代碼塊。finially是可選的。finially是指無論代碼是否出現(xiàn)異常都會(huì)執(zhí)行的代碼塊。而對數(shù)據(jù)庫連接資源來說,是非常寶貴的。因此,我們應(yīng)當(dāng)確保打開連接后,無論是否出現(xiàn)異常,都應(yīng)該關(guān)閉連接和釋放資源。所以,我們必須在finially語句塊中調(diào)用Close方法關(guān)閉數(shù)據(jù)庫連接。

 

 1 SqlConnection conn = new SqlConnection(connStr);
2 try
3 {
4 conn.Open();
5 }
6 catch(Exception ex)
7 {
8 ;//todo
9 }
10 finially
11 {
12 conn.Close();
13 }

 

(2)使用using語句

另外一種優(yōu)雅的方法,則是使用using語句。如果你還不熟悉using語法,我就再啰嗦幾句。using語句的作用是確保資源使用后,并很快釋放它們。using語句幫助減少意外的運(yùn)行時(shí)錯(cuò)誤帶來的潛在問題,它整潔地包裝了資源的使用。具體來說,它執(zhí)行以下內(nèi)容:

  • 分配資源。
  • 把Statement放進(jìn)try塊。
  • 創(chuàng)建資源的Dispose方法,并把它放進(jìn)finally塊。

因此,上面的語句等同于:

1 using(SqlConnection conn = new SqlConnection(connStr))
2 {
3 ;//todo
4 }


 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C#數(shù)據(jù)庫編程
「筆記」使用ADO.NET訪問數(shù)據(jù)庫,進(jìn)行增刪改查
Web.config之連接字介紹
vba連接數(shù)據(jù)庫 - VB / VBA
數(shù)據(jù)庫開發(fā)個(gè)人總結(jié)(ADO.NET) - ADO.NET教程 - 新客網(wǎng)
C#進(jìn)階ADO.NET基礎(chǔ)一 基本概念、數(shù)據(jù)庫連接操作基礎(chǔ)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服