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();

执行“ExecuteScalar”,因为我们只想要返回“IMAGE”列数据。

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 回答