本文將詳細介紹如何使用Connection對象串連資料庫。對於不同的.NET資料提供者,ADO.NET採用不同的Connection對象串連資料庫。這些Connection對象為我們屏蔽了具體的實現細節,並提供了一種統一的實現方法。
Connection類有四種:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。
SqlConnection類的對象串連SQL Server資料庫;OracleConnection 類的對象串連Oracle資料庫;
OleDbConnection類的對象串連支援OLE DB的資料庫,如Access;而OdbcConnection類的對象串連任何支援ODBC的資料庫。與資料庫的所有通訊最終都是通過Connection對象來完成的。
SqlConnection類
Connection 用於與資料庫“對話”,並由特定提供者的類(如 SqlConnection)表示。儘管SqlConnection類是針對Sql Server的,但是這個類的許多屬性、方法與事件和OleDbConnection及OdbcConnection等類相似。本章將重點講解SqlConnection特定的屬性與方法,其他的Connection類你可以參考相應的協助文檔。
注意:使用不同的Connection對象需要匯入不同的命名空間。OleDbConnection的命名空間為System.Data.OleDb。SqlConnection的命名空間為System.Data.SqlClient。OdbcConnection的命名空間為System.Data.Odbc。OracleConnection的命名空間為System.Data.OracleClinet。
SqlConnection屬性:
| 屬性 |
說明 |
| ConnectionString |
其傳回型別為string,擷取或設定用於開啟 SQL Server 資料庫的字串。 |
| ConnectionTimeOut |
其傳回型別為int,擷取在嘗試建立串連時終止嘗試並建置錯誤之前所等待的時間。 |
| Database |
其傳回型別為string,擷取當前資料庫或串連開啟後要使用的資料庫的名稱。 |
| DataSource |
其傳回型別為string,擷取要串連的 SQL Server 執行個體的名稱。 |
| State |
其傳回型別為ConnectionState,取得當前的串連狀態:Broken、Closed、Connecting、Fetching或Open。 |
| ServerVersion |
其傳回型別為string,擷取包含用戶端串連的 SQL Server 執行個體的版本的字串。 |
| PacketSize |
擷取用來與 SQL Server 的執行個體通訊的網路資料包的大小(以位元組為單位)。這個屬性只適用於SqlConnection類型 |
SqlConnection方法:
| 方法 |
說明 |
| Close() |
其傳回型別為void,關閉與資料庫的串連。 |
| CreateCommand() |
其傳回型別為SqlCommand,建立並返回一個與 SqlConnection 關聯的 SqlCommand 對象。 |
| Open() |
其傳回型別為void,用連接字串屬性指定的屬性開啟資料庫連接 |
SqlConnection事件:
| 事件 |
說明 |
| StateChange |
當事件狀態更改時發生。 (從 DbConnection 繼承。) |
| InfoMessage |
當 SQL Server 返回一個警告或資訊性訊息時發生。 |
提示:可以用事件讓一個對象以某種方式通知另一對象產生某些事情。例如我們在Windows系統中選擇“開始”菜單,一旦單擊滑鼠時,就發生了一個事件,通知作業系統將“開始”菜單顯示出來。
使用SqlConnection對象串連SQL Server資料庫
我們可以用SqlConnection()建構函式產生一個新的SqlConnection對象。這個函數是重載的,即我們可以調用建構函式的不同版本。SqlConnection()的建構函式如下表所示:
| 建構函式 |
說明 |
| SqlConnection () |
初始化 SqlConnection 類的新執行個體。 |
| SqlConnection (String) |
如果給定包含連接字串的字串,則初始化 SqlConnection 類的新執行個體。 |