我们可以为SQL Server和SQL Server Express提供通用连接字符串吗?

时间:2009-10-23 14:13:00

标签: c# .net sql-server-2005 connection-string sql-server-express

我有一台部署在计算机上的WCF服务。此WCF服务可以配置为SQL Server或SQL Server Express。

注意: SQL数据库位置可以是部署WCF服务的其他计算机。

我将以下信息放在XML文件中:

  1. 用户ID
  2. 密码
  3. 服务器名称
  4. 计算机名
  5. 如果是SQL Server Express

    ServerName 属性为“SQLEXPRESS”。在内部,我使用MachineName附加ServerName,因此serverName为:

    计算机名\ SQLEXPRESS

    传递给连接字符串。

    如果是SQL Server

    当我将 ServerName 传递给SQL Server时,它会抛出异常。

    请指导我选择最佳方法!!

3 个答案:

答案 0 :(得分:1)

您可以使用相同的连接字符串格式连接到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;

答案 1 :(得分:0)

最可能的原因是因为您的MSSQLSERVER实例在默认实例下运行而不是命名实例(这是SQL Express所做的)。解决方法是配置一个本地属性文件,该文件包含特定于环境的连接字符串。然后在配置文件本身中引用该文件,或者让部分构建过程将信息合并到配置文件中。

答案 2 :(得分:0)

有什么例外?另外我不确定ServerName和MachineName之间的区别。也许你的意思是ServerName和InstanceName?你应该用这种方式构造你的字符串(伪代码,我不知道你正在使用什么语言):

DataSource = ServerName
If (InstanceName != "")
    DataSource += "\" + InstanceName