建立連線
適用於:.NET Framework .NET .NET Standard
若要連線到 Microsoft SQL Server,請使用 Microsoft SqlClient Data Provider for SQL Server 的 SqlConnection 物件。 若要安全地儲存及擷取連接字串,請參閱保護連線資訊。
關閉連線
建議您在使用完連接後一律關閉該連接,以便將連接傳回集區。 即使有未處理的例外狀況,Visual Basic 或 C# 中的 Using
區塊也會在程式碼結束該區塊時自動處理連接。 如需詳細資訊,請參閱 using 陳述式與 Using 陳述式。
您也可以使用 Connection 物件的 Close
或 Dispose
方法。 可能不會將未明確關閉的連接加入或傳回集區。 例如,已離開範圍但尚未明確關閉的連接僅會在已達到最大集區大小,且連接仍然有效時,才會回到連接集區。
注意
請不要在類別之 Finalize
方法中的 Connection、DataReader 或任何其他受控物件上呼叫 Close
或 Dispose
。 在完成項中,只需釋放類別直接擁有的 Unmanaged 資源。 如果類別未擁有任何 Unmanaged 資源,請不要在類別定義中包含 Finalize
方法。 如需詳細資訊,請參閱記憶體回收。
注意
從連接集區中擷取連接或將連接傳回連接集區時,系統不會在伺服器上引發登入和登出事件,因為當連接傳回連接集區時,連接實際上並未關閉。 如需詳細資訊,請參閱 SQL Server 連線共用 (ADO.NET) \(機器翻譯\)。
連線到 SQL Server
如需有效的字串格式名稱及值,請參閱 ConnectionString 物件的 SqlConnection 屬性。 您也可以使用 SqlConnectionStringBuilder 類別在執行階段建立語法有效的連接字串。 如需詳細資訊,請參閱連接字串建置器。
下列程式碼範例示範如何建立及開啟與 SQL Server 資料庫的連接。
using Microsoft.Data.SqlClient;
class Program1
{
static void Main()
{
string s = GetConnectionString();
OpenSqlConnection(s);
Console.ReadLine();
}
private static void OpenSqlConnection(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
Console.WriteLine("State: {0}", connection.State);
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file, using the
// System.Configuration.ConfigurationSettings.AppSettings property
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;";
}
}
整合式安全性與 ASP.NET
連線到 SQL Server 時,SQL Server 整合式安全性 (也稱為信任連接) 有助於提供保護,因為其不會在連接字串中公開使用者識別碼與密碼,而且是建議用於驗證連線的方法。 整合安全性會使用執行中處理序的目前安全性識別或語彙基元。 針對傳統型應用程式,這個身分識別通常是目前登入之使用者的身分識別。
ASP.NET 應用程式的安全性識別可設為數個不同的選項之一。 若要更加了解 ASP.NET 應用程式在連線到 SQL Server 時所使用的安全性身分識別,請參閱 ASP.NET 模擬、ASP.NET 驗證與操作說明:使用 Windows 整合式安全性存取 SQL Server。