是否有任何簡單的方法來顯示從winforms應用程序的標準Windows數據源對話框?如何顯示標準的Windows數據源(ODBC)對話框
我想展示給用戶,並拿起一個系統DSN或創建一個新的,並返回一個數據源名稱。我沒有發現任何對.net中現有包裝的引用,所以我想我只能使用一個win API。任何現有的解決方案或代碼片段將不勝感激。
是否有任何簡單的方法來顯示從winforms應用程序的標準Windows數據源對話框?如何顯示標準的Windows數據源(ODBC)對話框
我想展示給用戶,並拿起一個系統DSN或創建一個新的,並返回一個數據源名稱。我沒有發現任何對.net中現有包裝的引用,所以我想我只能使用一個win API。任何現有的解決方案或代碼片段將不勝感激。
一些好的信息這似乎是不可能從該對話框獲得所選擇的數據源名稱。這裏是一個可以用來調用該對話框(link)的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是父窗口處理。對話框僅顯示有效的窗口句柄。 儘管我無法以這種方式選擇數據源,但我至少可以提供使用現有標準工具添加,更改或刪除數據源的功能。否則,我需要創建一個自定義的。
也許你可以爲它創建一個自定義窗口,用戶可以在其中插入/選擇一個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
您可以隨時執行打開窗口的過程(32位大小寫的odbcad32.exe)。但我想這不會給你包裝功能,因爲它可能不會返回任何東西到你的應用程序。你需要什麼來回報? – 2013-02-11 18:01:39
@ Mt.Schneiders我需要返回選定的數據源名稱。這可能是在對話框中創建的數據源。 – username 2013-02-11 18:05:15