【问题标题】:system dsn works but dsn-less connection string does not系统 dsn 工作,但 dsn-less 连接字符串不
【发布时间】:2013-08-14 15:38:38
【问题描述】:

编辑 1

我尝试创建和使用系统 DSN。我按照以下类似步骤进行了成功的连接尝试。然后我修改了我的连接字符串以引用这个新的 DSN。我收到一个错误指定的 DSN 包含驱动程序和应用程序之间的架构不匹配

为了解决这个问题,我使用 sysWOW64 odbcad32 exe 添加了一个相同的 DSN。我的代码现在成功完成。这只会突出问题。代码可以连接到系统 DSN。但是,当我为无 DSN 连接复制这些属性时,代码会失败。我的连接字符串有什么问题?

结束编辑 1

为什么我的连接字符串设置成功后却失败了?

但在我的项目中,当我使用此连接字符串 "Driver=SQL Server Native Client 11.0;DATABASE=SynchronizerTester;Trusted_Connection=Yes;SERVER=(localdb)\v11.0;" 时,我得到一个 System.Data.Odbc.OdbcException,命名管道无法打开连接等。

其他文章建议我应该改用数据源。此建议失败,因为“未指定服务器或 dsn 属性”。

Odbc 文件 DSN 和我的连接字符串之间有什么不同,这在此处有所不同?我应该在我的代码中使用 Sql* 系列而不是 Odbc* 系列吗?如果是这样,我如何根据连接字符串检测使用哪一个,以便注入正确的类型?

请注意,我可能使用相同的代码来处理各种连接字符串。我最初的想法是我会使用 ODBC 库作为最低公分母。

【问题讨论】:

    标签: odbc localdb


    【解决方案1】:

    天哪...

    我不会删除这篇文章,因为它应该存在于我的 SO 个人资料中,作为完全愚蠢的圣地......提醒我们努力变得不那么愚蠢。

    反斜杠是转义字符。

    变化:

    SERVER=(localdb)\v11.0;

    收件人:

    SERVER=(localdb)\\v11.0;

    【讨论】:

      【解决方案2】:

      只需在此处添加此内容,以防其他人发现它有用:我因不同原因而出现相同症状。

      在我的情况下,连接字符串是正确的。问题是工作站无法解析主机名的 DNS。 DSN 条目以某种方式设法工作。也许它缓存了一个完全限定的服务器名称或其他东西......?但是连接字符串失败了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-04
        • 2019-09-23
        • 1970-01-01
        • 2022-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多