使用 連接字串中的伺服器名稱參數來指定用戶端網路連結庫

摘要

本文說明如何在連線到 SQL Server 資料庫時,以程式設計方式在 連接字串 中指定用戶端網路連結庫。

在 Microsoft Data Access Components (MDAC) 2.6 和更新版本中,您可以使用 連接字串 中的伺服器名稱參數來指定用戶端存取連結庫。 因此,當應用程式提示您輸入要連線的伺服器名稱時,您可以指定特定的用戶端存取連結庫。 當您針對 SQL Server 的連線問題進行測試和疑難解答時,此行為很有用。

例如,您可以使用 Osql 命令行公用程式連線到 SQL Server,並強制它使用 TCP/IP 網路連結庫:

osql -Stcp:myServer,portNumber -E

原始產品版本:SQL Server
原始 KB 編號: 313295

程式碼範例

下列Microsoft Visual C# .NET 程式代碼範例示範如何設定 連接字串。 不論您使用的語言為何,連接字串 都有相同的格式:

using System;
using System.Data;
using System.Data.SqlClient;

namespace getCurrentProtocol
{
    /// <summary>
    /// Main Application Driver Class
    /// </summary>
    class Driver
    {
        static void Main(string[] args)
        {
            string sCxn = "server=myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=np:myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=tcp:myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=rpc:myServer;Integrated Security=SSPI; database=master";
            //string sCxn = "server=lpc:myServer;Integrated Security=SSPI; database=master";
            string sCmd = "SELECT net_library from sysprocesses where spid=@@spid";
            SqlConnection cxn = new SqlConnection(sCxn);
            SqlCommand sqlCmd = new SqlCommand(sCmd, cxn);
            SqlDataAdapter sqlDa = new SqlDataAdapter(sCmd, cxn);
            DataTable dt = new DataTable();
            try 
            {
                sqlDa.Fill(dt);
                Console.WriteLine("Hit ENTER to continue ...");
                Console.ReadLine();
                foreach (DataRow dr in dt.Rows)
                Console.WriteLine(dr["net_library"]);
            } 
            catch (SqlException e)
            {
                Console.WriteLine(e.StackTrace);
                Console.WriteLine("SQL Error Number: " + e.Number);
                Console.WriteLine("SQL Error Message: " + e.Message);
            }
        }
    }
}

注意

連接字串,特別是伺服器參數的值:

string sCxn = "server=myServer;Integrated Security=SSPI; database=northwind"

搭配各種網路連結庫使用程式碼範例

下列程式代碼範例示範如何使用伺服器參數的值來指定各種網路連結庫:

  • TCP/IP:

    server=tcp:hostname
    

    您可以選擇性地指定特定的埠號碼。 根據預設,埠為1433。

    server=tcp:hostname, portNumber
    
  • 命名管道:

    server=np:hostname
    

    您可以選擇性地指定特定的命名管道。

    server=np:\\hostname\pipe\pipeName
    

    根據預設,管道名稱為 sql\query。 如果您連線到具名實例,管道名稱通常格式如下:

    MSSQL$instnaceName\sql\query

  • 基礎通訊協定的預設值取決於操作系統設定,其中通訊協定可以有下列任何一個值:

    基礎通訊協定
    ncacn_np 具名管道
    ncacn_ip_tcp 傳輸控制通訊協定/因特網通訊協定 (TCP/IP)
    ncalrpc 本機過程調用
  • 共用記憶體:

    server=lpc:hostname
    

參考資料

如需詳細資訊,請參閱 附錄 A:登錄專案