如何显示标准的Windows数据源(ODBC)对话框

时间:2013-02-11 16:39:56

标签: c# windows winforms dialog odbc

有没有简单的方法可以从winforms应用程序显示标准的Windows数据源对话框?

enter image description here

我想向用户展示它并选择一个系统dsn或创建一个新的并返回一个数据源名称。我没有在.net中找到任何对现有包装器的引用,所以我想我只能使用win API。任何现有的解决方案或代码片段都将受到赞赏。

3 个答案:

答案 0 :(得分:1)

似乎无法从此对话框中获取所选数据源名称。这是winapi函数,可用于调用此对话框(link):

BOOL SQLManageDataSources(HWND hwnd);

这是一个片段:

[DllImport("ODBCCP32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
private static extern bool SQLManageDataSources(IntPtr hwnd);

private void ShowDataSourceDialog()
{
    SQLManageDataSources(Handle);
}

参数hwnd是父窗口句柄。对话框仅显示有效的窗口句柄。 即使我不能以这种方式选择数据源,我至少可以提供使用现有标准工具添加,更改或删除数据源的功能。否则我需要创建一个自定义的。

答案 1 :(得分:0)

也许您可以为其创建一个自定义窗口,用户可以在其中插入/选择DSN 有一些关于如何手动插入新DSN并列出已在机器上配置的DSN的示例:

Check for System DSN and create System DSN if NOT Existing (iSeries Access ODBC Driver)
Dynamically adding DSN-names
ODBC Driver List from .NET

答案 2 :(得分:0)

由于这是存储在注册表中的所有数据,因此您可以获得此处可用的ODBC连接列表:

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

包裹这个然而你想要漂亮。

有一些关于查询注册表here

的好信息