tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルSQLを発行して画像を取得する
記事No3057
投稿日: 2006/02/07(Tue) 15:42
投稿者しーぽん
[OSのVer]:WindowsXP    [VBのVer]:VB.NET  

お世話になります。

今回SQLを発行してバイク名と一致した画像をPictureBox1に表示したいと思っています。
画像データは、300件ほどで、全てbitmapで収納しています。
すみませんが、どなたか教えてください。お願いします。

objOleDbDataAdapter1 = New OleDb.OleDbDataAdapter
        _("SELECT 画像 FROM 国外車 WHERE ( バイク名 )", strConnectionstring)
        
     objOleDbDataAdapter1.Fill(dSet, "db1")

     Me.PictureBox1.Image = Image.FromFile(objOleDbDataAdapter1("gazou"))

[ツリー表示へ]
タイトルRe: SQLを発行して画像を取得する
記事No3058
投稿日: 2006/02/07(Tue) 16:02
投稿者魔界の仮面弁士
> 画像データは、300件ほどで、全てbitmapで収納しています。
やりたい事の概要はわかりましたが……。

> すみませんが、どなたか教えてください。お願いします。
設計の相談ですか? DB の操作法を知りたいのですか? 画像の扱い方を知りたいのですか?

正直な所、どの部分で躓いていて、何について教えて欲しいのかが書かれていないので、
こちらとしても、どう回答すればよいのか悩んでしまいます。(^_^;)

---------
とりあえず、『バイク名と一致した画像』を探そうとしているようですが、それぞれの
画像と名前の間には、何か関連づけられた情報があるのでしょうか?
(もし、バイク名を DB の列に持たせているなら、それを WHERE 句に指定すれば済みますね)

また、データベース側には、BMP 画像のパスが記載されているのでしょうか?
それとも、BMP 画像のバイナリが記載されているのでしょうか?
パスであれば Image.FromFile メソッド、バイナリなら Image.FromStream メソッドを
使ってBitmap イメージを読み込ませる事ができます。

[ツリー表示へ]
タイトルRe^2: SQLを発行して画像を取得する
記事No3067
投稿日: 2006/02/08(Wed) 14:06
投稿者しーぽん
[OSのVer]:WindowsXP    [VBのVer]:VB.NET  

返信ありがとうございます。
言葉が足りなくてすみません。

.NETからACCESSに接続し、一致したデータを取得しています。

バイク名と画像の他に、排気量と金額があります。
バイク名と排気量と金額はComboBoxに入れています。

データベース側のBMP画像のパスは『E:\sotusei\bin\BMW\K1200R.bmp』と記述しています。

できればどこをどのように直せばよろしいでしょか。

[ツリー表示へ]
タイトルRe^3: SQLを発行して画像を取得する
記事No3068
投稿日: 2006/02/08(Wed) 14:47
投稿者魔界の仮面弁士
> できればどこをどのように直せばよろしいでしょか。

やりたい事に加えて、現在の仕様まではわかりましたが、あいかわらず、
「現在はどこまで出来ていて、どこで躓いているのか」が分かりません。(^^;


SQL を組み立てる部分でうまくいっていないのでしょうか?
それとも、SQL を実行しても、パスの文字列を得る事が出来ていないのでしょうか?
あるいは、取得したパスをどのように扱えばよいのかわからないのでしょうか?

また、『画像の取得』という点については、具体的には何をしたいのでしょうか?
例えば―――
  ・その画像ファイルが存在するかどうかを取得したい
  ・元画像のサイズを取得したい
  ・ビットマップ画像の色数を取得したい
  ・画像のバイナリデータを Byte 配列に取得したい
  ・画像を Image クラス に読み込ませたい
  ・画像を PictureBox に表示したい
  ・画像を DataGrid に表示したい
  ・……その他……

[ツリー表示へ]
タイトルRe^4: SQLを発行して画像を取得する
記事No3070
投稿日: 2006/02/08(Wed) 22:28
投稿者しーぽん
[OSのVer]:WindowsXP    [VBのVer]:VB.NET  

返信ありがとうございます。

画像のSQLの組み立てる部分でうまくいっていません。

画像の取得は、画像をPictureBoxに表示させたいです。
よろしくお願いします。

[ツリー表示へ]
タイトルRe^5: SQLを発行して画像を取得する
記事No3071
投稿日: 2006/02/08(Wed) 22:50
投稿者魔界の仮面弁士
> 画像のSQLの組み立てる部分でうまくいっていません。

直接組み立てるとすれば、
 BikeName = 〜〜
 SQL = "SELECT 画像 FROM 国外車 WHERE バイク名='" & BikeName.Replace("'", "''") & "'"
という感じですかね。


実際には、OleDbCommand を使って、
  OleDbCommand1.CommandText = "SELECT 画像 FROM 国外車 WHERE バイク名=@BikeName"
  OleDbCommand1.Parameters.Add(New OleDb.OleDbParameter("@BileName", OleDbType.VarWChar, 50))
のようにパラメータ化しておき、
 OleDbCommand1.Parameters("@BikeName").Value = バイク名
 OleDbCommand1.Connection = コネクション
などのように指定した方が安全でしょうけれども。


> 画像の取得は、画像をPictureBoxに表示させたいです。
こちらは、単純に言えば、
 BitmapFilePath = (取得したフルパス)
 PictureBox1.Image = Image.FromFile(FilePath)
とするだけですよね。


表示中のファイルがロックされてしまうのが嫌なのであれば、
 Dim Stm As New System.IO.FileStream(BitmapFilePath, System.IO.FileMode.Open)
  PictureBox1.Image = Image.FromStream(Stm)
 Stm.Close()
とか。

[ツリー表示へ]
タイトルRe^6: SQLを発行して画像を取得する
記事No3081
投稿日: 2006/02/09(Thu) 21:42
投稿者しーぽん
[OSのVer]:Windows    [VBのVer]:VB.NET  

返信ありがとうございました。

おかげでできました。

またわから無いことがあったらよろしくおねがいします。

[ツリー表示へ]