• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2010 DBから値取得→パス指定で画像表示)

VB2010でDBから値を取得し、画像表示する方法

このQ&Aのポイント
  • VB2010でPictureBoxを使用してデータベースから値を取得して、画像を表示させたい場合、以下の手順で行います。
  • まず、データベースに接続し、指定のテーブルからs_codeの値を取得します。
  • 次に、取得したs_codeを使って画像ファイルのパスを生成し、PictureBoxに画像を表示させます。ただし、ファイルが存在しない場合、FileNotFoundExceptionが発生するため、エラーハンドリングが必要です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#1 さんご指摘の "dr(s_code)" が dr("s_code") の書き間違いだとして、、、 さらに "..\..\pict" が "..\..\pict\" の書き間違いだとして、、、 これらの補正を行ったうえで、画像ファイルのパスが質問者のイメージしているパスになるかどうか、ですかね。 System.IO.Path.GetFullPath(相対パス) これで相対パスを絶対パスに変換した文字列が取得できる。 もちろん相対パスを絶対パスに直すのだから、今現在の基準パスがどこにあるのかってのが重要になる。 一般的にアプリを起動してから基準パスを変更していなければ、アプリのファイルが置いてある場所が基準になる。 これをもとに、はたして相対パスで指定した画像ファイルの場所が想定通りになっているかを確認するのなら MessageBox.Show(System.IO.Path.GetFullPath("..\..\pict\" & dr("s_code") & ".jpg")) としてみればよい。 どうしても pict の後ろの "\" を指定したくないのならこういう書き方もある。 MessageBox.Show(System.IO.Path.GetFullPath(System.IO.Path.Combine("..\..\pict", "s_code" & ".jpg"))) ちなみに現在の基準パスがどこなのかを確認するには MessageBox.Show(System.IO.Directory.GetCurrentDirectory()) で確認することができる。

melnyq
質問者

お礼

パスは間違ってました・・・ 画像ファイルがある場所は間違ってないのですが 「存在しないデータを読み取ろうとしました」とエラーが出ました C:\Users\~\Debug\pict\に画像が置いてあり 基準パスがどこなのか確認したところC:\Users\~\Debugでした。

その他の回答 (1)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

> FileNotFoundExceptionはハンドルされませんでした。 「FileNotFoundException というエラーが発生しましたが、 エラーハンドリングされていませんでした。」という意味です。 > FileNotFoundException そのまま中学レベルの英語の解釈で分かると思います。 「ファイルが見つかりませんでした。」というエラーです。 パスが間違っているのでしょう。 > ("..\..\pict" & "dr(s_code)" & ".jpg") この結果は"..\..\pictdr(s_code).jpg"という文字列ですよ? パスが完全にありえないものになっていますね。

melnyq
質問者

お礼

パスが間違ってますね 気付きませんでした! ありがとうございます。

関連するQ&A

専門家に質問してみよう