C# SQL server express和SQL server的连接字符串之间有什么区别吗?

C# SQL server express和SQL server的连接字符串之间有什么区别吗?,c#,sql-server,C#,Sql Server,在我的应用程序中,我创建了一个动态连接字符串: server = "Server = .\\" + this.comboBoxListInstances.SelectedItem.ToString() + ";"; connectionString = server + attachDatabase + databaseName + "Integrated Security = true"; 在我的笔记本电脑上(使用SQL server 2008 express),结果是: // serve

在我的应用程序中,我创建了一个动态连接字符串:

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 server实例,并让用户选择所需的实例。
这个连接字符串在我的笔记本电脑和我的朋友(他们也使用SQLServerExpress)上运行良好。但是,当我在安装了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"
该应用程序工作!因此,我认为SQLServerExpress和SQLServer的连接字符串之间存在差异。是这样吗?有一个问题与我的类似,他们说没有区别。如果他们是对的,我的连接字符串有什么问题


p/S:很抱歉我的语法不好

看起来您刚刚证明了SqlExpress将其默认命名实例安装为“MSSQLSERVER”,而完整sql将安装一个未命名的默认实例blank

(本地)表示1433处的任何实例“\”“127.0.0.1”

.MSSQLEXPRESS显式表示。\MSSQLEXPRESS,它可能是也可能不是(本地)默认实例

另一方面,通常在这一点上最相关的区别是,常规SQL将在端口打开且TCP客户端准备就绪的情况下安装


在激活外部端口和客户端协议之前,SQL Express只允许本地“dev”类型的连接。

这意味着问题在于我所做的是通过注册表项查找所有SQL server实例,但是完整SQL的默认实例为空,不是吗?