簡體   English   中英

SQL Server express和SQL Server的連接字符串有什么區別嗎?

[英]Is there any difference between connection string for SQL server express and SQL server?

在我的應用程序中,我創建一個動態連接字符串:

server = "Server  = .\\" + this.comboBoxListInstances.SelectedItem.ToString() + ";";
connectionString = server + attachDatabase + databaseName + "Integrated Security = true";

在我的筆記本電腦上(使用SQL Server 2008 express),結果是:

// server = "Server = .\\SQLEXPRESS;" (I select SQLEXRESS in comboBox)
// attachDatabase = "AttachDbFileName = |DataDirectory|\\Resources\\DT.mdf;"
// databaseName = "Database = DATA;";
// so the conectionString is : "Server = .\\SQLEXPRESS;AttachDbFileName = |DataDirectory|\\Resources\\DT.mdf;Database = DATA;Integrated Security = true"

我讀了注冊表來查找所有SQL服務器實例,讓用戶選擇他們想要的。
這個conectionString在我的筆記本電腦和我的朋友使用SQL服務器表達也很好。 但是,當我在安裝了SQL Server 2008 R2的另一位朋友的筆記本電腦上運行我的應用程序時,它會引發異常:

在此輸入圖像描述

它說連接字符串無效,它是:

"Server = .\\MSSQLSERVER;AttachDbFileName = |DataDirectory|\\Resources\\DT.mdf;Database = DATA;Integrated Security = true"

當我嘗試暫時禁用comboBoxListInstance並使用此conectionString時

"Server = (local);AttachDbFileName = |DataDirectory|\\Resources\\DT.mdf;Database = DATA;Integrated Security = true"

該應用程序工作! 所以,我認為SQL Server express和SQL Server的連接字符串之間存在差異。 這樣對嗎? 有類似地雷問題在這里 ,他們說,沒有什么區別。 如果他們是對的,我的connectionString有什么問題?

P / S:抱歉我的語法不好

看起來您剛剛證明SqlExpress將其默認命名實例安裝為“MSSQLSERVER”,其中完整的sql安裝了一個未命名的默認空白實例。

(local)表示“。\\”“127.0.0.1”WHATEVER實例是1433。

.MSSQLEXPRESS明確表示。\\ MSSQLEXPRESS可能是也可能不是(本地)默認實例。

作為An Aside,通常在這一點上最相關的區別是常規SQL將在端口打開並且TCP客戶端准備好的情況下安裝。

在您激活外部端口和客戶端協議之前,SQL Express將僅允許本地“dev”類型的連接。

暫無
暫無

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

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