本文將詳細介紹如何使用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 類的新實例。