2

编辑 1

我尝试创建和使用系统 DSN。我按照以下类似步骤进行了成功的连接尝试。然后我修改了我的连接字符串以引用这个新的 DSN。我收到一个错误The specified DSN contains a architecture mismatch between Driver and Application

为了解决这个问题,我使用 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 库作为最低公分母。

4

2 回答 2

5

我的天啊...

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

反斜杠是转义字符。

改变:

SERVER=(localdb)\v11.0;

到:

SERVER=(localdb)\\v11.0;

于 2013-08-14T17:19:25.023 回答
0

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

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

于 2017-04-28T01:46:59.640 回答