- - PR -
64ビット版VistaでDataGridViewにデータが表示されない(Vistaでの注意事項は?)
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-03-03 14:17
お世話になります。
64ビット版VistaでVB2008でのアプリにおいて、DataGridViewにデータが表示されないと いう現象に悩まされておりますが対処方法を教えて頂けないでしょうか。 DBはAccess2003です。 データを3件ほど入力済みのテーブルを用意しDataGridViewに内容を表示したいのですが クエリビルダのクエリの実行では内容を表示できるのにアプリを実行したときには 内容を表示することができません。(0件になります) データベースファイルをプロジェクトにコピーして利用するかどうかは両方とも試しました。 同様の手順で32ビット版XPではデータの表示ができるのは確認しています。 (元々はXPで動作しているプロジェクトをVistaに持っていったら動きませんでした。 そこで新規にプロジェクトを作成したのですが改善されませんでした) 今回は64ビット版Vistaでしたが、別アプリ(32ビット版Vista)で同じようにDBへの接続に 失敗するという事象が出ており、もしかしたらXPとVistaでDB接続時に何か違いがあるのでは ないかと思い質問させて頂きました。 アドバイスよろしくお願いします | ||||||||
|
投稿日時: 2009-03-03 18:29
もうちょっと、原因が特定できるように、調査をしていただけないでしょうか。
Vista 32 でデータベースとの接続に失敗するとのことですが、どの様なメッセージが出ますか? Vista 64 ですが、プロジェクトが Any CPU 向けに作成されていると思います。それを、x86 向けに 32bit アプリケーションとして作成すると、動作が変わったりしませんか? | ||||||||
|
投稿日時: 2009-03-04 00:19
ご協力ありがとうございます。
明日確認します。
変更の方法が合ってるかわかりませんのでやった手順を説明させて頂きます。 1.MyProjectのコンパイルタグを開く 2.プラットフォーム(M)の所を見たらアクティブ(AnyCPU)しかありませんでしたのでそのままにした 3.同画面の一番下の詳細コンパイルオプションボタンをクリック 4.コンパイラの詳細設定画面が表示されたのでターゲットCPU(U)のところでX86を選択 5.ソリューションのリビルドを実行 上記手順を行ったらDBの中身が表示されるようになりました。 関係ないかも知れませんがDBをSQL Server Compact3.5に変更して試してみました。 上記4でターゲットCPUがX86だとDBの中身が表示されますが、CPUをAnyCPUにするとアプリ実行時にDBの中身が表示されず、アプリ終了時に「DLL'sqlceme35.dll'を読み込めません:指定されたモジュールが見つかりません。(HRESULTからの例外:0x8007007E)」が表示されます。 | ||||||||
|
投稿日時: 2009-03-04 10:37
64ビットアプリとして作成するなら
sql native clientもx64のが必要なのかも?? | ||||||||
|
投稿日時: 2009-03-04 10:59
AnyCPUで作成しているから環境に合わせて動作 ↓ 64ビット環境だからx64として動作 ↓ x64用のDLLを探したけど見つからない(エラー表示) ※x64用のsql native clientが必要 ということでしょうか? この理屈でいくと、Accessの時もx64用のDLLで動作したことになりますね。 Accessのx64用のDLLには問題があるのでしょうか? | ||||||||
|
投稿日時: 2009-03-04 11:06
使用しているドライバが違っているとか・・・
ACCESSはODBCドライバ使用でx64のがインストールされていた VB2008ではsql clientを使用してx86のものしか入っていなかったとか そうするとVBでもODBC clientを使用すれば動くかもしれませんね | ||||||||
|
投稿日時: 2009-03-04 16:18
データソースの選択で「Microsoft Access データベースファイル」を 選択しています。 説明欄には「.NET Framework OLE DB用データプロバイダを通じて Microsoft Accessデータベースファイルに接続するにはこの選択を 行います。」と書いてありますのでODBCではないのではないかと思います。 それはともかく、Visual Studioをインストールしているマシンに x64用のドライバーが入らないというのは如何なものかと思います。 インストールの時に注意すれば済む話なのでしょうか? 確かフルインストールしたと思うので、別にインストールしないと いけないのでしょうか? それとAccessは落ちなかっただけで動作はしていません。(DBの内容が表示されません) つまりAnyCPUだとどちらも正常に動かない訳です。 [ メッセージ編集済み 編集者: Haru 編集日時 2009-03-04 16:21 ] | ||||||||
|
投稿日時: 2009-03-04 18:31
Access というか、Office System は、32ビット アプリケーションしか提供されていないと思います。
当然、JET Driver も、32ビットでしょう。64ビット アプリケーションは、32ビット DLL をロード出来ません。 |
1|2|3
次のページへ»