SqlConnection.Open 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Open() |
使用 ConnectionString 所指定的屬性設定,開啟資料庫連接。 |
Open(SqlConnectionOverrides) |
使用 ConnectionString 所指定的屬性設定,開啟資料庫連接。 |
Open()
使用 ConnectionString 所指定的屬性設定,開啟資料庫連接。
public:
override void Open();
public override void Open ();
override this.Open : unit -> unit
Public Overrides Sub Open ()
例外狀況
開啟連接時發生連接層級的錯誤。 如果 Number 屬性包含值 18487 或 18488,這就表示指定的密碼已過期或必須重設。 如需詳細資訊,請參閱 ChangePassword(String, String) 方法。
app.config 檔案中的 <system.data.localdb>
標記有無效或未知的項目。
在 <localdbinstances>
區段中有兩個項目同名。
範例
下列範例會 SqlConnection 建立 ,並開啟它,並顯示其部分屬性。 連線會在區塊結尾 using
自動關閉。
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;";
}
}
備註
如果有的話,會 SqlConnection 從連接集區繪製開啟的連接。 否則,它會建立與 SQL Server 實例的新連線。
注意
SqlConnection如果 超出範圍,則不會關閉。 因此,您必須呼叫 Close 明確地關閉連接。
注意
如果您嘗試連線到 SQL Server 的實例,並使用 TCP/IP 以外的通訊協定時,指定 1433 以外的埠號碼,此方法就會 Open 失敗。 若要指定 1433 以外的埠號碼,請在連接字串中包含 「server=machinename,port number」,並使用 TCP/IP 通訊協定。
注意
.NET Framework data Provider for SQL Server 需要啟用 「允許呼叫 Unmanaged 元件」的安全性許可權, (SecurityPermissionSecurityPermissionFlag 設定為 UnmanagedCode
) 以開啟 SqlConnection 已啟用 SQL 偵錯的 。
適用於
Open(SqlConnectionOverrides)
使用 ConnectionString 所指定的屬性設定,開啟資料庫連接。
public:
void Open(Microsoft::Data::SqlClient::SqlConnectionOverrides overrides);
public void Open (Microsoft.Data.SqlClient.SqlConnectionOverrides overrides);
override this.Open : Microsoft.Data.SqlClient.SqlConnectionOverrides -> unit
Public Sub Open (overrides As SqlConnectionOverrides)
參數
- overrides
- SqlConnectionOverrides
覆寫預設連線開啟行為的選項。
例外狀況
開啟連接時發生連接層級的錯誤。 如果 Number 屬性包含值 18487 或 18488,這就表示指定的密碼已過期或必須重設。 如需詳細資訊,請參閱 ChangePassword(String, String) 方法。
app.config 檔案中的 <system.data.localdb>
標記有無效或未知的項目。
在 <localdbinstances>
區段中有兩個項目同名。
範例
下列範例會 SqlConnection 建立 ,並開啟它,並顯示其部分屬性。 連線會在區塊結尾 using
自動關閉。
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;";
}
}
備註
如果有的話,會 SqlConnection 從連接集區繪製開啟的連接。 否則,它會建立與 SQL Server 實例的新連線。 如果指定覆寫,第一次開啟嘗試會將指定的覆寫套用至開啟動作。
注意
SqlConnection如果 超出範圍,則不會關閉。 因此,您必須呼叫 Close 明確地關閉連接。
注意
如果您嘗試連線到 SQL Server 的實例,並使用 TCP/IP 以外的通訊協定時,指定 1433 以外的埠號碼,此方法就會 Open 失敗。 若要指定 1433 以外的埠號碼,請在連接字串中包含 「server=machinename,port number」,並使用 TCP/IP 通訊協定。
注意
.NET Framework data Provider for SQL Server 需要啟用 「允許呼叫 Unmanaged 元件」的安全性許可權, (SecurityPermissionSecurityPermissionFlag 設定為 UnmanagedCode
) 以開啟 SqlConnection 已啟用 SQL 偵錯的 。