- ベストアンサー
DB画像Image型→ローカル保存について
環境: vb.net 2008 express sqlserver2005 express DB odbc接続 DBに画像ファイルimage型で保存 ↓ DBの画像データをローカルに指定した拡張子で出力。 する機能をシステムに追加したいと考えています。 この際、参考になるサイトなどあれば ご教授ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考になるサイトは意外とないような気がするのですが、とりあえず最もベーシックな構造はこんな感じです。 (これ以外にも方法はありますが) なお、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
その他の回答 (1)
- jamshid6
- ベストアンサー率88% (591/669)
#1です。 上書きにならず、エラーになります。 あくまでバイナリハンドリングのサンプルなので、その辺は端折っています。VB側でハンドリングしてあげてください。
お礼
なるほど、了解しました。 ありがとうございます。
お礼
すばらしい!ありがとうございます。 ちなみにこの場合、すでにファイルが存在していた場合は 上書き保存になるんでしょうか。 ストリームだから、そうなのかな。早速この後試してみます。