无废话ADO.NET 第二章 关于连接
以SQLServer為例子進行說明,包含以下內容:
如何進行連接
如何關閉連接
池的問題
連接狀態
1.如何進行連接
// 創建連接實例DbConnection myConnection = new SqlConnection();
// 設置連接字符串
myConnection.ConnectionString = "user id=userName;password=pass;initial catalog=northwind;data source=mySQLServer;Connect Timeout=30";
// 打開連接
myConnection.Open();
2.如何關閉連接
// 創建連接實例
DbConnection myConnection = new SqlConnection();
// 設置連接字符串
myConnection.ConnectionString = "user id=userName;password=pass;initial catalog=northwind;data source=mySQLServer;Connect Timeout=30";
// 打開連接
myConnection.Open();
// 關閉連接,用Dispose也可以實現關閉;連接實例被垃圾回收器回收的時候不會自動釋放數據庫連接
myConnection.Close();
3.池的問題
當連接打開時,將根據一種精確的匹配算法來創建連接池,該算法會使連接池與連接中的字符串相關聯。
每個連接池都與一個不同的連接字符串相關聯。當新連接打開時,如果連接字符串不精確匹配現有池,則將創建一個新池。
在以下示例中,將創建三個新的 SqlConnection 對象,但只需要使用兩個連接池來管理這些對象。
請注意,第一個和第二個連接字符串的差異在于為 Initial Catalog 分配的值
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
conn.Open();
// Pool A is created.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=pubs";
conn.Open();
// Pool B is created because the connection Strings differ.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
conn.Open();
// The connection String matches pool A.
以上是連接字符串中與池相關的設置。
關于池的概念這里不多說
4.連接狀態
通過連接實例的State屬性,可以觀察數據庫連接的狀態,共有如下種狀態
??? ??? ??? System.Data.ConnectionState.Closed
??? ??? ??? System.Data.ConnectionState.Open
??? ??? ??? System.Data.ConnectionState.Connecting
??? ??? ??? System.Data.ConnectionState.Executing
??? ??? ??? System.Data.ConnectionState.Fetching
??? ??? ??? System.Data.ConnectionState.Broken
StateChange事件在 Connection 的狀態出現更改時發生。StateChange 事件接收 StateChangeEventArgs,它們使您能夠使用 OriginalState 和 CurrentState 屬性來確定 Connection 狀態中的更改。OriginalState 屬性它指示 Connection 在更改前的狀態。CurrentState 它指示 Connection 在更改后的狀態。
myConnection.StateChange += new StateChangeEventHandler(OnStateChange);
protected static void OnStateChange(object sender, StateChangeEventArgs args)
{
Console.WriteLine("The current Connection state has changed from {0} to {1}.",
args.OriginalState, args.CurrentState);
}
轉載于:https://www.cnblogs.com/hutou/archive/2011/02/24/1963691.html
總結
以上是生活随笔為你收集整理的无废话ADO.NET 第二章 关于连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图解WordPress主题(模板)架构
- 下一篇: SQL SERVER 用sql语句将一列