系统dsn可以工作,但无dsn的连接字符串不起作用

coc*_*lla 2 odbc localdb

编辑1

我尝试创建和使用系统DSN。我按照下面的类似步骤进行操作,导致连接尝试成功。然后,我修改了连接字符串以引用此新的DSN。我收到错误消息指定的DSN包含Driver和Application之间的体系结构不匹配

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

结束编辑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库用作最低公分母。

coc*_*lla 5

我的天啊...

我不会删除此帖子,因为它应该作为我的愚蠢之圣而存在于我的SO个人资料中……这是在提醒您努力变得愚蠢。

反斜杠是转义字符。

更改:

SERVER=(localdb)\v11.0;

至:

SERVER=(localdb)\\v11.0;