Connection物件是用來與特定的資料來源建立連接。負責與DB連接,開啟資料庫 (Open) 及關閉資料庫 (Close)。
引入相關的資源
因為新建的項目並沒有各個資料庫的連線類別(資料庫驅動),需手動的安裝。
- SQL Server資料庫:
Microsoft.Data.SqlClient - Mysql資料庫:
MySql.Data - Oracle資料庫:
System.Data.OracleClient
在專案右鍵NuGet套件管理
(需要什麼包就去上面Down就行了)
- 請務必安裝
Microsoft.Data.SqlClient而非 System.Data.SqlClient。Microsoft.Data.SqlClient是較新版本的 SQL 用戶端程式庫,可提供額外的功能。
NuGet 安裝套件
在專案右鍵NuGet套件管理
- 在 [方案總管] 視窗中,以滑鼠右鍵按一下專案的 [相依性] 節點,然後選取 [管理
NuGet套件]。 - 在產生的視窗中,搜尋
SqlClient。 找出Microsoft.Data.SqlClient結果,然後選取 [安裝]。
連線字串
1
string connString = "Data Source=192.168.0.1;Initial catalog=DBTEST;User id=riva;Password=1234;Encrypt=true;Trust Server Certificate=True;"
1
2
3
"ConnectionStrings": {
"DefaultConnection": "Data Source=192.168.0.1;Initial Catalog=TestDb;User ID=riva;Password=1234;Encrypt=true;Trust Server Certificate=True;"
}
Data Source:資料來源- 本機
.、http://localhost或127.0.0.1
- SQL Server Express
.\SQLEXPRESS(本機\SQLEXPRESS)Win11\SQLEXPRESS(電腦名稱\SQLEXPRESS)
- SQL Server 2019
192.168.0.1(IP)
- 本機
SQL 連線加密 & 加密憑證:
Encrypt:加密連線- SQL Server Management Studio(SSMS) > 登入頁面 > [選項] > 勾選 [加密連線]
- 連線字串加上
Encrypt=true;
Trust Server Certificate:信任伺服器憑證- SQL Server Management Studio(SSMS) > 登入頁面 > [選項] > 勾取 [信任伺服器憑證]
- 連線字串加上
TrustServerCertificate=True;
SSMS 在登入時有兩個額外選項「Encrypt connection」 及「Trust server certificate」,勾選後便可使用 TLS 加密連線:
SQL Server 安裝時已預設支援加密連線,不需額外設定,但預設用的 TLS 憑證是自我簽署憑證(Self-Signed Certificate),故要勾選 Trust server certificate,否則會因無法驗證憑證有效性出現錯誤:
建立連線 (連線到 SQL Server)
如何建立及開啟與 SQL Server 資料庫的連接
1
2
3
4
5
6
// Assumes connectionString is a valid connection string.
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Do work here.
}
範例
1
2
3
4
5
6
7
string connString = "Data Source=.;Initial catalog=DBTEST;User id=riva;Password=1234;Trust Server Certificate=True";
using (SqlConnection conn = new SqlConnection(connString))
{
if (conn.State != ConnectionState.Open) conn.Open();
Console.WriteLine("db open");
}
關閉連接:C# 中的
Using 區塊也會在程式碼結束該區塊時自動處理連接
為什麼連不到MSSQL資料庫(或無法登入)
檢查服務是否有啟動?
- 開始 > 找到安裝的SQL Server版本 > 展開之後選擇
Configuration Tools(設定管理員) >Sql Server Configuration Manager>Sql Server服務> 確認狀態是Running。
MSDN - 連接字串語法
MSDN - 連線至資料庫並使用 .NET 和 Microsoft.Data.SqlClient 程式庫查詢 Azure SQL 資料庫
MSDN - 建立連線
MSDN - SQL Server Express 使用者執行個體 MSDN - 設定 SQL Server 資料庫引擎來加密連線
[SQL]為什麼連不到MSSQL資料庫 - 故障排除指南
啟用 SQL Server SSL 連線加密 by 余小章
SQL 連線加密觀察及加密憑證檢查 by darkthread

