除了使用.reg文件或手动创建DSN之外,还可以通过编程方式尝试创建用户DSN还有哪些其他步骤?
您可以使用ODBCCONF.exe这一命令行工具,它允许您配置ODBC驱动程序和数据源名称。它使用SQLConfigDataSource函数。然而,就是这么老的技术,微软警告:
ODBCCONF.exe将在Windows数据 访问组件的未来版本中被删除。避免使用此功能,并计划修改当前使用此功能的应用程序。
我不确定退役ODBCCONF.exe会对SQLConfigDataSource
有什么影响,但看起来不太好。因此,最好的方法之一是使用推荐的PowerShell命令来管理驱动程序和数据源,这里是Windows Data Access Components PowerShell Commands的列表。
您只需运行的cmdlet像Add-OdbcDsn:
Add-OdbcDsn [-Name] <String> -DriverName <String> -DsnType <String> [-AsJob] [-CimSession <CimSession> ] [-PassThru] [-Platform <String> ] [-SetPropertyValue <String> ] [-ThrottleLimit <Int32> ] [ <CommonParameters>]
如:
PS C:>添加-OdbcDsn -Name “MyPayroll” -DriverName “SQL Server本机客户端 10.0” -DsnType “系统” -SetPropertyValue @( “服务器= MyServer的”, “Trusted_Connection =是”, “数据库=工资”)
我猜你已经知道或很容易找到如何执行这些在C#中的PowerShell命令。
不幸的是,above powershell commands are for Windows 8 and above。
对于Windows 7和下面你既可以:
一)使用ODBCCONF.exe
B)写入直接在C#
三)注册使用the SQLConfigDataSource function,或
d)使用PowerShell脚本的作品对于Windows 7:
PS C:\> Add-ODBCconnection2HKCU.ps1
这里是附加ODBCconnection2HKCU.ps1:
## Add to the "HKEY_CURRENT_USER" - registry ODBC update Add a ODBC Connection as a User DSN tab
$HKCUaddpath = "HKCU:\SOFTWARE\ODBC\ODBC.INI\LocalDeveloper"
cd HKCU:\SOFTWARE\ODBC\ODBC.INI\LocalDeveloper
md LocalDeveloper
Set-ItemProperty -path $HKCUaddpath -name Database -value "Developer"
Set-ItemProperty -path $HKCUaddpath -name Description -value "Local Developer database"
Set-ItemProperty -path $HKCUaddpath -name Driver -value "C:\Windows\System32\SQLSRV32.dll"
Set-ItemProperty -path $HKCUaddpath -name LastUser -value ""
Set-ItemProperty -path $HKCUaddpath -name Server -value "Max-PCWIN1"
Set-ItemProperty -path $HKCUaddpath -name Trusted_Connection -value "Yes"
## This is needed for this ODBC connection to show in the "ODBC Administator" application
cd HKCU:\SOFTWARE\ODBC\ODBC.INI\'ODBC Data Sources'
Set-ItemProperty -path HKCU:\SOFTWARE\ODBC\ODBC.INI\'ODBC Data Sources' -name LocalDeveloper -value "SQL Server"
REF:http://maxt2posh.wordpress.com/2009/06/07/powershell-working-with-odbc-dsn-connection/
谢谢。这非常有帮助。 – octopusgrabbus 2014-11-02 16:23:29
在缺乏Windows 8的情况下 - 我们在Windows 7上 - 是否有一个更老的命令可以完成同样的事情?我一直在MSDN的网站上寻找这个,并且这个命令似乎是新的。谢谢。 – octopusgrabbus 2014-11-03 15:53:13
很高兴我能提供帮助,并对Windows 8的限制感到惭愧,所以我在Windows 7方案中增加了一些更多的研究。 – 2014-11-04 00:54:46