C#とODBCを使用してMS Accessデータベースを作成するにはどうすればよいですか?
1074 次
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 に答える