【问题标题】:C# Connecting to a SQL server with a named instance?C# 使用命名实例连接到 SQL 服务器?
【发布时间】:2008-11-20 22:01:51
【问题描述】:

我的一个客户告诉我,我为他们制作的程序不会连接到命名实例的 SQL 服务器,我有一个没有命名实例的标准 SQL 服务器,所以我想知道如何测试它。命名实例连接字符串如下所示,如果我的代码失败,反斜杠可以是吗?

Driver={SQL Native Client};Server=myServerName\theInstanceName;Database=myDataBase;

我的代码如下:

sqlServer=s.Substring(keyword.Length,s.Length-keyword.Length);
FormODBC formODBC=new FormODBC(this);
formODBC.SetSqlServer(sqlServer,dbUsername,dbPassword,database,table);
formODBC.ReadData();

我怀疑这可能是问题所在,我应该如何处理反斜杠?

谢谢

【问题讨论】:

    标签: c# sql


    【解决方案1】:

    我们有带有命名实例的 SQL 服务器。 示例:myservername\sql2005。 反斜杠很好,连接字符串中的服务器名称将是“myservername\sql2005”,可以 100% 正常工作。您可以在同一台服务器上有一个“常规实例”,将是“myservername”

    PS 只是对你的函数进行单元测试,使连接字符串返回“myservername\sql2005”。

    【讨论】:

    • 谢谢,我不明白为什么,但对我来说,我的 C# 连接字符串“myservername\\InstanceName”不起作用,但“myservername\InstanceName”工作得很好。
    【解决方案2】:

    另外,请记住,反斜杠是 C# 字符串中的转义字符。如果您的实例名称包含在字符串变量中,请确保您执行以下任一操作:

    string server = "myServer\\myInstance";
    

    string server = @"myServer\myInstance";
    

    【讨论】:

      【解决方案3】:

      答案是确保您的连接字符串是可配置的,并将其设置为:

      数据源=localhost\msexpress;数据库=dbname;trusted_connection=true;

      【讨论】:

        【解决方案4】:

        还有名称为 MyServerName\SQLEXPRESS 的偶尔的 SQL Express 版本案例。这可能会让一些人感到困惑,因为他们不会想到以这种方式指定服务器。

        【讨论】:

          【解决方案5】:

          您可以将连接字符串提取到配置文件(请注意,这不一定安全 - 这将取决于他们的 SQL 安全服务器的设置方式以及您的应用程序运行的帐户) - 然后您的客户端可以添加部署时,他们的服务器到您的应用程序配置的适当连接字符串。

          注意事项:

          • 您可以通过将 .txt 文件重命名为 .udl 文件并运行直到可以连接到您/他们的服务器来创建连接字符串。
          • 您的未命名实例实际上可以通过名称访问 - 安装 SQL 服务器的计算机名称

          【讨论】:

            【解决方案6】:

            斯科特, 冒着明显的风险,您是否尝试过在自己的开发环境中设置命名实例?我实际上并不知道您的问题的答案,但我个人从未遇到过测试直接失败的场景无济于事的解决方案。至少,您应该能够获得更好的调试信息,以准确了解失败的原因。祝你好运解决这个问题。

            问候, 克里斯

            【讨论】:

            • 如果他在一台机器上并且没有运行命名实例的许可证,那会怎样?
            • @Chris,我想他本可以自己解决的。
            • @flesh,他可以在他的系统上安装一个免费的 SQL Server Express 作为命名实例。全世界都可以免费使用 SQL Server Express。它与付费许可服务器使用相同的 SQL Server 引擎,只是处理的数据量较小(即总数据量不到 10 GB)。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-05-22
            • 1970-01-01
            • 1970-01-01
            • 2011-09-10
            • 2018-01-27
            • 1970-01-01
            相关资源
            最近更新 更多