Asp.net DSN到连接字符串?
我们有一个ASP.NET网站,它使用一个我们希望能够使用connectionstring访问的数据库。我们已经成功地设置了一个DSN来连接到这个DB,但是我似乎无法发现连接字符串的正确魔力 是否有一种直接的方法将DSN中的值转换为connectionstring?我知道,从UI上看,没有一个明显的答案……每个db供应商都提供了一个不同的UI,用于根据他们的需要创建DSN。然而,我希望在UI下面,它可能只是在幕后创建一个连接字符串,我可以看看它,看看我做错了什么。有希望吗?如果是的话,有没有关于如何获得我需要的信息的建议 (我已经访问了connectionstrings.com,试图确保我的连接字符串的格式正确,但似乎没有任何效果……这就是为什么我尝试从dsn tact进行这种奇怪的翻译。)Asp.net DSN到连接字符串?,asp.net,odbc,connection-string,dsn,Asp.net,Odbc,Connection String,Dsn,我们有一个ASP.NET网站,它使用一个我们希望能够使用connectionstring访问的数据库。我们已经成功地设置了一个DSN来连接到这个DB,但是我似乎无法发现连接字符串的正确魔力 是否有一种直接的方法将DSN中的值转换为connectionstring?我知道,从UI上看,没有一个明显的答案……每个db供应商都提供了一个不同的UI,用于根据他们的需要创建DSN。然而,我希望在UI下面,它可能只是在幕后创建一个连接字符串,我可以看看它,看看我做错了什么。有希望吗?如果是的话,有没有关于如
编辑:我肯定不清楚的是,我们不希望有DSN条目。我们已经创建了一个,并且暂时使用了它,但是我们希望能够摆脱它,使用一个连接字符串,而不使用dsn。如果您创建了一个dsn,那么dsn就是连接字符串 您只需使用
DSN=
并将其传递给OdbcConnection对象
例如,使用C#:
或者,可以使用该类并设置其
DSN
属性。如果可以使用OLEDB,则可以创建一个。只需创建一个新的文本文档,test.udl
并双击。填写对话框,然后用记事本将其打开。瞧,这是你的连接字符串
ODBC有点难-您可以从ODBC管理员创建文件DSN,也可以在系统DSN的HKLM\Software\ODBC\ODBC.INI\
中浏览注册表。您将得到一些名称/值对。您应该能够将它们转换为连接字符串。\\Driver
将列出实际的DLL,因此您需要从HKLM\Software\ODBC\ODBC数据源\\
获取提供程序名称
如果您可以使用ODBC的OLEDB提供程序,那么您可以使用UDL技巧,让它也从ODBC文件DSN构建连接字符串。ODBC连接字符串将位于UDL的扩展属性中。要扩展Mark Brackett关于注册表的回答:对于64位Windows上的32位ODBC,注册表路径为HKLM\Software\Wow6432Node\ODBC\ODBC.INI\,在我的情况下,它足以:
- 卸下收割台
- 用分号替换所有新行
- 使用大括号作为组分隔符
DRIVER={MySQL ODBC 5.3 ANSI Driver};UID=MyUserName;PORT=3306;DATABASE=mydatabasename;SERVER=localhost
不…我的观点是,我们希望避免使用DSN,而使用没有DSN的连接字符串。不过,这对我很有用。谢谢,啊!文件DSN!好主意!这正是我想要的。(我想我可以从注册表中提取信息,但不确定在哪里查找,但文件DSN更简单!)遗憾的是,它没有解决问题……它只是验证了所有属性都匹配。现在我猜这可能是某种权限问题…设置DSN可能与尝试直接从ASP.NET连接具有不同的权限…遗憾的是,这不是我的专业领域。唉。
[ODBC]
DRIVER=MySQL ODBC 5.3 ANSI Driver
UID=MyUserName
PORT=3306
DATABASE=mydatabasename
SERVER=localhost
DRIVER={MySQL ODBC 5.3 ANSI Driver};UID=MyUserName;PORT=3306;DATABASE=mydatabasename;SERVER=localhost