為了訪問資料庫,需要提供某種連線引數,如執行資料庫的計算機和登入證書。使用sqlconnection類連線sql server。
下面的**段說明了如何建立、開啟和關閉books資料庫的連線。
public static void openconnection()
catch (exception ex)
}
注意:
sqlconnection類實現了idisposable介面,其中包含dispose方法和close方法。這兩個方法的功能相同,都是釋放連線。這樣,就可以使用using語句來關閉連線。
在該示例的連線字串中,使用的引數如下所示。連線字串中的引數用分號分隔開。
注意:在上可以找到許多不同資料庫的連線字串資訊。
這個connectionsamples示例使用定義好的連線字串開啟資料庫連線,再關閉該連線。一旦開啟連線後,就可以對資料來源執行命令,完成後,就可以關閉連線。
1. 管理連線字串
不在c#**中硬編碼連線字串,而是最好從配置檔案中讀取它。在.net core中,配置檔案可以是json或xml格式,或從環境變數中讀取。在下面的示例中,連線字串從乙個json配置檔案中讀取:
//}"data":
}}
使用nuget包microsoft.extensions.configuration定義的configuration api可以讀取json檔案。為了使用json配置檔案,還要新增nuget包microsoft.extensions.configuration.json。為了讀取配置檔案,建立configurationbuilder。addjsonfile擴充套件方法新增json檔案config.json,從這個檔案中讀取配置資訊——假定它與程式在相同的路徑中。要配置另一條路徑,可以呼叫setbasepath方法。呼叫configurationbuilder的build方法,從所有新增的配置檔案中構建配置,返回乙個實現了iconfiguration介面的物件。這樣,就可以檢索配置值,如data:defaultconnection:connectionstring的配置值:
public static void connectionusingconfig()
輸出結果:
server=localhost;database=books;trusted_connection=true;
2. 連線池
幾年前實現兩層應用程式時,是在應用程式啟動時開啟連線,只有在關閉應用程式時才關閉連線。現在就不用這麼做。使用這個程式架構的原因是,需要一定的時間來開啟連線。現在,關閉連線不會關閉與伺服器的連線。相反,連線會新增到連線池中。再次開啟連線時,它可以從池中提取,因此開啟連線會非常快速,只有第一次開啟連線需要一定的時間。
連線池可以用幾個選項在連線字串中配置。選項pooling設定為false,會禁用連線池;它預設為啟用:pooling=true。main pool size和max pool size允許配置池中的連線數。預設情況下,min pool size的值為0,max pool size的值為100。connection lifetime定義了連線在釋放前在池中保持不活躍狀態的時間。
3. 連線資訊
在建立連線後,可以註冊事件處理程式,來獲得一些連線資訊。sqlconnection類定義了infomessage和statechange事件。每次從sql server返回乙個資訊或警告訊息時,就觸發infomessage事件。連線的狀態變化時,就觸發statechange事件,。例如開啟或關閉連線:
public static void connectioninformation()
");};
connection.statechange += (sender,e) =>
,before: ");
};try
catch (exception ex)
}}
執行應用程式時,會觸發statechange事件,看到open和closed狀態:
current state: open,before: closed
connection opened
current state: closed,before: open
如果出現了異常,預設不觸發infomessage事件。設定fireinfomessageeventonusererrors屬性,可以改變這個行為。這樣在出錯時,例如使用了titl而不是title,就可以從應用程式中看到這個資訊:
current state: open,before: closed
connection opened
warning or info: invalid column name 'titl'.
current state: closed,before: open
sqlconnection類還提供了統計資訊。只需要設定statisticsenabled屬性,就可以在retrievestatistics方法中檢索統計資訊。這個方法通過實現了idictionary介面的物件返回統計資訊:
idictionary statistics = connection.retrievestatistics();
showstatistics(statistics);
connection.resetstatistics();
showstatistics方法迭代接收了idictionary介面的所有鍵,並顯示所有值:
private static void showstatistics(idictionary statistics)
,value: ");
}console.writeline();
}
從books表中檢索所有記錄,就會顯示連線中的這些統計資訊:
current state: open,before: closed
connection opened
statistics
buffersreceived,value: 0
bufferssent,value: 0
bytesreceived,value: 0
bytessent,value: 0
cursoropens,value: 0
iducount,value: 0
idurows,value: 0
preparedexecs,value: 0
prepares,value: 0
selectcount,value: 0
selectrows,value: 0
serverroundtrips,value: 0
sumresultsets,value: 0
transactions,value: 0
unpreparedexecs,value: 0
connectiontime,value: 0
executiontime,value: 162
networkservertime,value: 0
current state: closed,before: open
2 資料庫連線
1.註冊驅動 class.forname com.mysql.cj.jdbc.driver 對於我的電腦為mysql8.0版本的2.建立連線 connection connection null string url jdbc mysql localhost 3306 grade user root...
使用JDBC連線mysql,db2等資料庫
jdbc連線資料庫的方法 1 連線oracle 8 8i 9i 10g 11g thin模式 class.forname oracle.jdbc.driver.oracledriver newinstance string url jdbc oracle thin localhost 1521 or...
資料庫連線
第一,設定允許遠端連線,允許sql server驗證 第二,建立登陸帳戶並授權 第三,註冊sql server資料庫 c windows microsoft.net framework v2.0.50727 下執行 aspnet regsql 指令 data server sqlexpress in...