0

C#とODBCを使用してMS Accessデータベースを作成するにはどうすればよいですか?

4

1 に答える 1

1

これから判断する: データベースの作成時に ODBC Access Driver Format を指定するにはどうすればよいですか?

私は次のように言います:

enum RequestFlags : int
{
    ODBC_ADD_DSN = 1,
    ODBC_CONFIG_DSN = 2,
    ODBC_REMOVE_DSN = 3,
    ODBC_ADD_SYS_DSN = 4,
    ODBC_CONFIG_SYS_DSN = 5,
    ODBC_REMOVE_SYS_DSN = 6,
    ODBC_REMOVE_DEFAULT_DSN = 7
}


[DllImport("ODBCCP32.DLL",CharSet=CharSet.Unicode, SetLastError=true)]
static extern bool SQLConfigDataSourceW(UInt32 hwndParent , RequestFlags fRequest, string lpszDriver, string lpszAttributes);

これをメインメソッドに含める:

string strDriverName = "Microsoft Access Driver (*.mdb, *.accdb)";
string strAttr = "CREATE_DBV12=c:\access2007.accdb";
SQLConfigDataSource(0, RequestFlags.ODBC_ADD_DSN, strDriverName, strAttr );

警告: 未テスト

注: pinvoke.net から pInvoke 情報をコピーしました。
UInt32 hwndParent が間違っているようです。おそらく UIntPtr のはずです。
これは Win64 では特に重要です。タグを確認するときに必要だと思います。
その場合は、0 の代わりに UIntPtr.Zero を使用してください。ただし、最初に試してください。

また、新しいプロジェクトが大規模になることを意図している場合は、アクセス データベースを使用しないことに注意してください。スタンドアロンのデータベースが必要な場合は、代わりに組み込みの Firebird を使用してください。そうすれば、後で多くのトラブルを避けることができます。

また、Windows の新しい 64 ビット バージョンは、Access-driver が事前にインストールされていない状態で出荷されることに注意してください。

于 2012-08-09T10:59:50.870 に答える