3

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

在此处输入图像描述

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

4

3 回答 3

1

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

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 是父窗口句柄。对话框仅针对有效的窗口句柄显示。尽管我不能以这种方式选择数据源,但我至少可以提供使用现有标准工具添加、更改或删除数据源的能力。否则我需要创建一个自定义的。

于 2013-02-11T19:03:30.900 回答
0

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

检查系统 DSN 并在不存在时创建系统 DSN(iSeries Access ODBC 驱动程序)从 .NET
动态添加 DSN 名称ODBC 驱动程序列表

于 2013-02-11T18:18:19.400 回答
0

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

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

把它包起来,但是你想让它变得漂亮。

这里有一些关于查询注册表的好信息

于 2013-02-11T18:22:09.560 回答