我们可以有SQL Server和SQL Server Express的通用连接字符串吗?
问题描述:
我有一个部署在机器上的WCF服务。此WCF服务可以配置为SQL Server或SQL Server Express。我们可以有SQL Server和SQL Server Express的通用连接字符串吗?
注意: SQL数据库位置可以是其他计算机位置,而不是WCF服务的部署位置。在XML文件
我把下列信息:
- 用户ID
- 密码
- 服务器名
- 计算机名
在SQL Server Express的
情况服务器名称属性是“SQLEXPRESS”。在内部我追加服务器名与计算机名,因此服务器名是:
计算机名\ SQLEXPRESS这是传递给连接字符串
。
在SQL Server
的情况下,当我通过服务器名到SQL Server,它抛出异常。
请指导我的最佳方法!
答
什么是例外?另外我不确定ServerName和MachineName之间有什么不同。也许你的意思是ServerName和InstanceName?您应该构建您的字符串这样(伪代码,我不知道你使用的是什么语言):
DataSource = ServerName
If (InstanceName != "")
DataSource += "\" + InstanceName
答
您可以使用相同的连接字符串格式连接到SQL Server Express和完整版本。
只要确保您正在使用正确的字符串,类似这样的事情对于DEFAULT安装来说是很常见的。
Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
和完整的SQL Server
Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
答
最可能的原因是因为你的MSSQLSERVER的实例的默认实例而不是命名实例(这是SQL Express版本)下运行。解决方法是配置一个本地属性文件,该文件包含特定于环境的连接字符串。然后或者在配置文件本身中引用该文件,或者让您的构建过程的一部分将信息合并到配置文件中。
你能告诉我们的那些设置2 - 1为SQL Server和一个Express版本 - 和告诉我们结果连接字符串是什么? – 2009-10-23 14:46:30