用代码写注册表当然是可以。不过建议用“文件型”ODBC数据源,安装时copy过去就可以用。(想想.Net 现在用Xcopy部署,真好。)

解决方案 »

  1.   

    string driverOdbc="SQL Server";
    RegistryKey regRead=Registry.LocalMachine.OpenSubKey(@"Software\ODBC\ODBCINST.INI\"+driverOdbc);
    string driver="";
    if(regRead!=null)
    {
    driver=regRead.GetValue("Driver").ToString();
    }
    RegistryKey reg=Registry.LocalMachine.CreateSubKey(@"Software\ODBC\ODBC.INI\LODBSource");
    if(reg!=null)
    {
    reg.SetValue("Driver",driver);
    reg.SetValue("Server",ServerList.Text.Trim());
    reg.SetValue("Database","LOKTDB");
    reg.SetValue("LastUser",textUser.Text.Trim());
    reg.Close();
    } RegistryKey regDSN=Registry.LocalMachine.CreateSubKey(@"Software\ODBC\ODBC.INI\ODBC Data Sources");
    if(regDSN!=null)
    {
    regDSN.SetValue("LODBSource",driverOdbc);
    regDSN.Close();
    }