共用方式為


SqlConnection.Open 方法

定義

多載

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 偵錯的 。

適用於