除了使用.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