有没有简单的方法可以从winforms应用程序显示标准的Windows数据源对话框?
我想向用户展示它并选择一个系统dsn或创建一个新的并返回一个数据源名称。我没有在.net中找到任何对现有包装器的引用,所以我想我只能使用win API。任何现有的解决方案或代码片段都将受到赞赏。
答案 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
的好信息