我是vb.net的新手,我有一个问题要完成我的任务。首先,我在vb.net中有一个项目,它有一个进程按钮,点击后会显示一个工作人员姓名列表SQL Server数据库(我正在使用SQL Server 2008 R2)到列表视图。然后我有复制按钮,一个按钮用于将列表名称复制到记事本(成功),另一个用于将列表名称复制到Excel(成功)。列表视图包括员工ID,名字和姓氏,每个ID都有自己的图像(人员图像)。
我想将所有图像(1137图像)从SQL Server数据库保存到桌面上的特定文件夹。我做了,但只保存了一张图片。如何将所有1137图像保存到文件夹?有人能帮助我吗?
这是我的代码:
Private Sub btnsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsave.Click
Dim cn As SqlConnection
cn = New SqlConnection
cn.ConnectionString = "MyConnString;"
Dim cmd As New System.Data.SqlClient.SqlCommand("SELECT pt_image FROM BadgeImages.dbo.portrait")
cmd.Connection = cn
cmd.CommandType = CommandType.Text
cn.Open()
Dim ImgStream As New IO.MemoryStream(CType(cmd.ExecuteScalar(), Byte()))
Dim Image As System.Drawing.Image = System.Drawing.Image.FromStream(ImgStream)
Image.Save("C:\Documents and Settings\prymax\Desktop\images + ".jpg", Imaging.ImageFormat.Jpeg)
End Sub
此代码仅保存1张图片=(
答案 0 :(得分:0)
您需要使用DataReader
。您可以选择以下选项:
使用DataReader
,并使用您在上面演示的技术保存结果,然后循环显示结果。
将btnsave_Click
的内容转换为函数,并在将数据传递给所述函数时循环遍历列表(使用列表中的内容作为您WHERE
的标识符SQL)
您可以使用DataReader
将每张图片设置为Picturebox
,然后立即使用
Picturebox
的内容
Picturebox.Image.Save("path of image", imagefiletype)
这些都应该有用。
答案 1 :(得分:0)
Public Sub ExportImages()
ConnDB()
sql = "select Photo,ID from student"
cmd = New MySqlCommand(sql, con)
dr = cmd.ExecuteReader
While dr.Read
Dim byteImg As Byte() = CType(dr(0), Byte())
Dim strPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\StudentPics\" & "" & dr(1) & ".jpg"
Dim fs As FileStream = New FileStream(strPath, FileMode.CreateNew, FileAccess.Write)
fs.Write(byteImg, 0, byteImg.Length)
fs.Flush()
fs.Close()
End While
dr.Close()
con.Close()
End Sub
这对我来说很好用