簡體   English   中英

C#使用命名實例連接到SQL Server嗎?

[英]C# Connecting to a SQL server with a named instance?

我的一個客戶告訴我,我為他們制作的程序無法連接到名為實例的SQL Server,我有一個沒有命名實例的標准SQL Server,所以我想知道如何進行測試。 一個命名實例連接字符串看起來像下面的字符串,反斜杠可能是我的代碼失敗嗎?

驅動程序= {SQL Native Client};服務器= myServerName \\ theInstanceName;數據庫= myDataBase;

我的代碼如下:

sqlServer=s.Substring(keyword.Length,s.Length-keyword.Length);
FormODBC formODBC=new FormODBC(this);
formODBC.SetSqlServer(sqlServer,dbUsername,dbPassword,database,table);
formODBC.ReadData();

我懷疑這可能是問題,應該如何處理反斜杠?

謝謝

我們有帶有命名實例的SQL服務器。 示例:myservername \\ sql2005。 反斜杠很好,在連接字符串服務器名稱中將是“ myservername \\ sql2005”,可以100%正常工作。 您可以在同一服務器上有一個“常規實例”,將是“ myservername”

PS只是對您的函數進行單元測試,使連接字符串返回“ myservername \\ sql2005”。

另外,請記住,反斜杠是C#字符串中的轉義字符。 如果您的實例名稱包含在字符串變量中,請確保執行以下任一操作:

string server = "myServer\\myInstance";

要么

string server = @"myServer\myInstance";

答案是確保連接字符串是可配置的,並將其設置為類似以下內容:

數據源= localhost \\ msexpress;數據庫= dbname; trusted_connection = true;

斯科特,冒着明顯的風險,您是否嘗試過在自己的開發環境中設置命名實例? 我實際上不知道您問題的答案,但是我個人從未遇到過直接測試失敗的情況沒有幫助的解決方案。 至少您應該能夠獲得有關故障原因的更好的調試信息。 祝你好運得到解決。

克里斯,問候

在偶爾的SQL Express版本中,名稱為MyServerName \\ SQLEXPRESS。 這會使某些人不滿意,因為他們不會以這種方式指定服務器。

您可以將連接字符串提取到配置文件中(請注意,該連接字符串不一定安全-這將取決於其SQL安全服務器的設置方式以及您的應用程序在其下運行的帳戶)-然后您的客戶端只需添加適當的連接部署時將其服務器的字符串添加到應用程序的配置中。

筆記:

  • 您可以通過將.txt文件重命名為.udl文件並運行直到可以連接到您的服務器來創建連接字符串。
  • 可以通過名稱實際訪問您的已取消實例的實例-安裝SQL Server的計算機名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM