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

发布于 2024-08-09 04:01:58 字数 572 浏览 8 评论 0原文

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

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

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

  1. 用户 ID
  2. 密码
  3. ServerName
  4. MachineName

如果是 SQL Server Express

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

MachineName\SQLEXPRESS

,它被传递到连接字符串。

对于 SQL Server

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

请指导我最好的方法!

I have a WCF service that is deployed on a machine. This WCF service can be configured to either SQL Server or SQL Server Express.

NOTE : The SQL database location can be other machine other then where WCF service is deployed.

I put following information in XML file:

  1. user id
  2. password
  3. ServerName
  4. MachineName

In case of SQL Server Express

The ServerName property is "SQLEXPRESS". Internally I append the ServerName with MachineName so the serverName is:

MachineName\SQLEXPRESS

which is passed to connection string.

In case of SQL Server

When I pass ServerName to SQL Server it throws exception.

Please guide me for the best approach!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

生生漫 2024-08-16 04:01:58

您可以使用相同的连接字符串格式连接到 SQL Server Express 和完整版本。

只需确保您使用正确的字符串,对于默认安装来说,类似的情况很常见。

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;

You can use the same connection string format to connect to both SQL Server Express and full editions.

Just make sure that you are going through with the proper string, something like this would be common, for DEFAULT installations.

Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

and for full SQL Server

Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
不顾 2024-08-16 04:01:58

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

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

What is the exception? Also I am not sure what the difference is between ServerName and MachineName. Maybe you meant ServerName and InstanceName? You should construct your string this way (pseudo code, I have no idea what language you're using):

DataSource = ServerName
If (InstanceName != "")
    DataSource += "\" + InstanceName
空城旧梦 2024-08-16 04:01:58

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

The most likely reason is because your instance of MSSQLSERVER is running under the default instance rather than a named instance (which is what SQL Express does). A work around is to configure a local properties file that holds the connection string specific to the environment. Then either reference the file with in the config file itself, or have part of your build process incorporate the information into the configuration file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文