3

winforms アプリケーションから標準の Windows データ ソース ダイアログを表示する簡単な方法はありますか?

ここに画像の説明を入力

ユーザーに表示してシステム DSN を取得するか、新しい DSN を作成してデータソース名を返したいと思います。.net の既存のラッパーへの参照が見つからないので、そのためには win API しか使用できないと思います。既存のソリューションまたはコードのスニペットをいただければ幸いです。

4

3 に答える 3

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 は、親ウィンドウのハンドルです。ダイアログは、有効な Windows ハンドルに対してのみ表示されます。この方法でデータ ソースを選択することはできませんが、少なくとも、既存の標準ツールを使用してデータ ソースを追加、変更、または削除する機能を提供できます。それ以外の場合は、カスタムのものを作成する必要があります。

于 2013-02-11T19:03:30.900 に答える
0

これはレジストリに保存されているすべてのデータであるため、ここで使用可能な ODBC 接続のリストを取得できます。

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

これをきれいにしたい方法でラップします。

ここにレジストリのクエリに関する良い情報があります

于 2013-02-11T18:22:09.560 に答える
0

ユーザーがDSNを挿入/選択できるカスタムウィンドウを作成できるかもしれません。
新しい DSN を手動で挿入し、マシン上で既に構成されているものを一覧表示する方法の例がいくつかあります。

システム DSN を確認し、存在しない場合はシステム DSN を作成する (iSeries Access ODBC ドライバー) .NET から
DSN 名を動的に追加する
ODBC ドライバー リスト

于 2013-02-11T18:18:19.400 に答える