繁体   English   中英

如何在Visual Studio 2012 C#项目中使用SQLConfigDataSource

[英]How to Use SQLConfigDataSource in a Visual Studio 2012 C# Project

我想以编程方式创建用户DSN。 我已经阅读了这个和类似的SO问题; 参加了MSDN论坛; 并在其他几个地方进行了研究,以了解如何使SQLConfigDataSource正常工作。 在上面我链接的SO帖子中,我看到已引用SQLConfigDataSourceW ,但是找不到对此的引用。

我想在Visual Studio 2012 C#项目中使用SQLConfigDataSource或类似的功能,并且不知道我的.cs文件中应包含什么内容。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

我看过System.Data.Odbc,SQLConfigDataSource似乎不属于其中。 我相信ODBC驱动程序已安装在我的工作站上。 除了使用.reg文件或手动创建DSN之外,我还可以尝试其他哪些步骤?

除了使用.reg文件或手动创建DSN之外,我还可以尝试其他哪些步骤以编程方式创建用户DSN?

您可以使用ODBCCONF.exe ,这是一个命令行工具,可用于配置ODBC驱动程序和数据源名称。 它使用SQLConfigDataSource函数。 但是,这种技术太老了,Microsoft警告:

ODBCCONF.exe将在Windows数据访问组件的将来版本中删除。 避免使用此功能,并计划修改当前使用此功能的应用程序。

我不确定退役ODBCCONF.exe对SQLConfigDataSource会有什么影响,但效果并不理想。 因此,前进的最佳方法之一是使用推荐的PowerShell命令来管理驱动程序和数据源,这是Windows数据访问组件PowerShell命令的列表。

您只需运行像Add-OdbcDsn这样的cmdlet:

Add-OdbcDsn [-Name] <String> -DriverName <String> -DsnType <String> [-AsJob] [-CimSession <CimSession> ] [-PassThru] [-Platform <String> ] [-SetPropertyValue <String> ] [-ThrottleLimit <Int32> ] [ <CommonParameters>]

例如:

PS C:> Add-OdbcDsn-名称“ MyPayroll” -DriverName“ SQL Server Native Client 10.0” -DsnType“ System” -SetPropertyValue @(“ Server = MyServer”,“ Trusted_Connection = Yes”,“数据库= Payroll”)

我猜您已经知道或可以轻松地从C#中找到如何执行这些powershell命令的方法。


不幸的是, 上述powershell命令适用于Windows 8及更高版本

对于Windows 7及更低版本,您可以:
a)使用ODBCCONF.exe
b)直接在C#中写入注册表
c)使用SQLConfigDataSource函数 ,或者
d)使用适用于Windows 7的Powershell脚本:

PS C:\> Add-ODBCconnection2HKCU.ps1

这是add-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"

参考: http : //maxt2posh.wordpress.com/2009/06/07/powershell-working-with-odbc-dsn-connection/

暂无
暂无

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

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