首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用c#代码创建64位ODBC DSN

如何使用c#代码创建64位ODBC DSN
EN

Stack Overflow用户
提问于 2016-01-08 16:22:20
回答 1查看 2.1K关注 0票数 0

我使用下面的代码来创建ODBC DSN。它运行成功并创建了ODBC DSN 32位。但是,我需要创建64位的ODBC DSN。你知道在下面的代码中有什么改变来实现它吗?

谢谢,

代码语言:javascript
复制
//////////////
using Microsoft.Win32;
//////////////

string ODBC_PATH = "SOFTWARE\\ODBC\\ODBC.INI\\";
string driverName = "SQL Server Native Client 11.0";
string dsnName = "DSNfromCode";
string database = "MYDBNAME";
string description = "This DSN was created from code!";
string server = ".";
bool trustedConnection = true;

// Lookup driver path from driver name         
string driverPath = "C:\\WINDOWS\\System32\\sqlncli11.dll";

var datasourcesKey = Registry.LocalMachine.CreateSubKey(ODBC_PATH + "ODBC Data Sources");
if (datasourcesKey == null)
{
    throw new Exception("ODBC Registry key does not exist");
}
datasourcesKey.SetValue(dsnName, driverName);
// Create new key in odbc.ini with dsn name and add values        
var dsnKey = Registry.LocalMachine.CreateSubKey(ODBC_PATH + dsnName);
if (dsnKey == null)
{
    throw new Exception("ODBC Registry key for DSN was not created");
}

dsnKey.SetValue("Database", database);
dsnKey.SetValue("Description", description);
dsnKey.SetValue("Driver", driverPath);
dsnKey.SetValue("LastUser", "sa");
dsnKey.SetValue("Server", server);
dsnKey.SetValue("Database", database);
dsnKey.SetValue("username", "sa");
dsnKey.SetValue("password", "system123#");
dsnKey.SetValue("Trusted_Connection", trustedConnection ? "Yes" : "No");
EN

回答 1

Stack Overflow用户

发布于 2016-01-08 17:43:46

基于https://support.microsoft.com/en-us/kb/942976,我有一种直觉,64位的系统DSN将被放在相同的注册表文件夹中。所以基于这个假设,你只需要修改你的driverPath变量来适应64位的情况。

另一种方法是使用64位ODBC Administrator工具在x64计算机上创建DSN。在注册表中查找DSN,检查其中的内容,并在C#中实现相同的设置。

对未来的一些建议。请检查您发布的代码。尤其是在输入sa user password :)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34672433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档