2

この SQL データベース "Student" があり、そのテーブル "StudentPic" から ".jpg" 拡張子を持つ特定のフォルダーに画像 (すべてまたは選択) をエクスポートしたいと考えています。

これは私の仕事であり、うまくいきませんでした。これについて何かコメントはありますか?

Dim sql As String = " SELECT TOP 10 StudID,StudentPic FROM Student"
Dim cmd As SqlCommand = New SqlCommand(sql, conn)
conn.Open
Dim dr As SqlDataReader = cmd.ExecuteReader

While dr.Read
    Dim bytes() As Byte = CType(dr("StudentPic"),Byte())
    Dim memStream As MemoryStream = New MemoryStream(bytes)
    Try 
        Dim MyImage As Bitmap = New Bitmap(memStream)
        MyImage = New Bitmap(MyImage, 200, 250)
        MyImage.Save((dr("StudID") + ".jpg"), ImageFormat.Jpeg)
    Catch ex As Exception
        Throw ex
    End Try

End While
4

2 に答える 2

1

クエリを使用してテーブルからイメージを選択し、.net イメージ関数を使用してイメージをディスクに保存できます。それほど難しくはありませんが、前述のとおり、ここにコードを記述することを期待するのは得策ではありません。私は .net でそれを掘り下げます。行き詰まった場合は、ここに質問を投稿してください (詳細とともに)。幸運を!

于 2013-01-16T07:58:17.500 に答える
0

イメージをバイト配列に取得し、FileStream を使用してファイルに書き込むことができます。これが例です。

データベースからの画像の取得は、データベースへの画像の保存とはまったく逆のプロセスです。

SqlCommand cmd = new SqlCommand("select Pic from StudentPic where StudentID=@ID", 
                   new SqlConnection("conn stirng"));cmd.Parameters.AddWithValue("@ID",'id of a student');cmd.Connection.Open();

「IMAGE」列のデータのみを戻したいので、「ExecuteScalar」を実行します。

byte[] byteImg=(byte[])cmd.ExecuteScalar();cmd.Connection.Close();

このデータをフォルダーに保存します。

string strPath=Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\StudentPics\\"+"picName.jpg";
    FileStream fs=new FileStream(strFileTime,FileMode.CreateNew,FileAccess.Write);
    fs.Write(byteImg,0,byteImg.Length);fs.Flush();fs.Close();

うまくいけばそれを助けます。

于 2013-01-16T08:17:13.083 に答える