• ベストアンサー

DB画像Image型→ローカル保存について

環境: vb.net 2008 express sqlserver2005 express DB odbc接続 DBに画像ファイルimage型で保存 ↓ DBの画像データをローカルに指定した拡張子で出力。 する機能をシステムに追加したいと考えています。 この際、参考になるサイトなどあれば ご教授ください。

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

参考になるサイトは意外とないような気がするのですが、とりあえず最もベーシックな構造はこんな感じです。 (これ以外にも方法はありますが) なお、IMAGE型は古い型なので、varbinary(MAX)を使いましょう。 Using sqlConn As New SqlConnection("接続文字列")   sqlConn.Open()   Dim strSQL As String = "SELECT 画像データ FROM 画像テーブル WHERE SEQ=1"   Using sqlCmd As New SqlCommand(strSQL, sqlConn)     Using sdr As SqlDataReader = sqlCmd.ExecuteReader       Do While sdr.Read         Dim fs As New FileStream("C:\画像.jpg", FileMode.CreateNew)         Dim bw As New BinaryWriter(fs)         bw.Write(CType(sdr.Item(0), Byte()))         bw.Close()         fs.Close()       Loop     End Using   End Using   sqlConn.Close() End Using

-0-y
質問者

お礼

すばらしい!ありがとうございます。 ちなみにこの場合、すでにファイルが存在していた場合は 上書き保存になるんでしょうか。 ストリームだから、そうなのかな。早速この後試してみます。

その他の回答 (1)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

#1です。 上書きにならず、エラーになります。 あくまでバイナリハンドリングのサンプルなので、その辺は端折っています。VB側でハンドリングしてあげてください。

-0-y
質問者

お礼

なるほど、了解しました。 ありがとうございます。

関連するQ&A