繁体   English   中英

创建SQL Server DSN

[英]Create SQL Server DSN

我需要通过代码创建DSN以与SQL Server连接。 我在此链接中尝试过该示例,但由于dataSourceKey永远不会为null,因此它总是失败。 有人有其他解决方案或其他选择吗?

http://www.codeproject.com/Tips/350601/Create-SQL-DSN-in-Csharp

这是代码:

string ODBC_PATH = "SOFTWARE\\ODBC\\ODBC.INI\\";     
string driverName = "SQL Server";
string dsnName = "DSNfromCode";
string database = "MyDBName";
string description = "This DSN was created from code!";
//This is one change I made the source code had the IP of the server and I 
//am hardcoding a server name
string server = "Brimstone";
bool trustedConnection = false;

// Lookup driver path from driver name         
string driverPath = "C:\\WINDOWS\\System32\\sqlsrv32.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");

我最终只是从PC导出注册表项,然后在需要它的PC上的loadevent()上启动它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM