1
我试图从一个窗体(PictureBox的)中存储三个图像到一个SQL数据库(MSSQL2008) 我是编程新手,并且有一点难度简化了我的代码。 下面是我想要的,但显然效率不高。任何改变什么指针来改善这个?在SQL数据库中存储多个图像
Private Sub SaveImages()
Dim ConStr As String = "Data Source=SERVER\SQL2008;Initial Catalog=NorthPole;Integrated Security=True"
Dim con As New SqlConnection(ConStr)
Dim sqlCommand As New SqlCommand()
sqlCommand.Connection = con
sqlCommand.CommandText = "INSERT INTO Items (ItemID, ItemNumber, ItemImage1, ItemImage2, ItemImage3) SELECT NEWID(), @ItemNumber, @ItemImage1, @ItemImage2, @ItemImage3"
sqlCommand.Parameters.Add(New SqlParameter("@ItemNumber", SqlDbType.VarChar, 20)).Value = "MS1006"
Dim ms1 As MemoryStream = New MemoryStream()
PictureEdit1.Image.Save(ms1, System.Drawing.Imaging.ImageFormat.Jpeg)
sqlCommand.Parameters.Add(New SqlParameter("@ItemImage1", SqlDbType.VarBinary)).Value = ms1.GetBuffer
Dim ms2 As MemoryStream = New MemoryStream()
PictureEdit2.Image.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg)
sqlCommand.Parameters.Add(New SqlParameter("@ItemImage2", SqlDbType.VarBinary)).Value = ms2.GetBuffer
Dim ms3 As MemoryStream = New MemoryStream()
PictureEdit3.Image.Save(ms3, System.Drawing.Imaging.ImageFormat.Jpeg)
sqlCommand.Parameters.Add(New SqlParameter("@ItemImage3", SqlDbType.VarBinary)).Value = ms3.GetBuffer
con.Open()
sqlCommand.ExecuteNonQuery()
con.Close()
End Sub
Private Sub LoadImages()
Dim ConStr As String = "Data Source=SERVER\SQL2008;Initial Catalog=NorthPole;Integrated Security=True"
Dim con As New SqlConnection(ConStr)
con.Open()
Dim sqlCommand As New SqlCommand()
sqlCommand.Connection = con
sqlCommand.CommandText = "SELECT ItemImage1 FROM items WHERE ItemNumber = 'MS1006'"
Dim buffer1 As Byte() = sqlCommand.ExecuteScalar()
Dim ms1 As MemoryStream = New MemoryStream(buffer1)
PictureEdit1.Image = Image.FromStream(ms1)
sqlCommand.CommandText = "SELECT ItemImage2 FROM items WHERE ItemNumber = 'MS1006'"
Dim buffer2 As Byte() = sqlCommand.ExecuteScalar()
Dim ms2 As MemoryStream = New MemoryStream(buffer2)
PictureEdit2.Image = Image.FromStream(ms2)
sqlCommand.CommandText = "SELECT ItemImage3 FROM items WHERE ItemNumber = 'MS1006'"
Dim buffer3 As Byte() = sqlCommand.ExecuteScalar()
Dim ms3 As MemoryStream = New MemoryStream(buffer3)
PictureEdit3.Image = Image.FromStream(ms3)
con.Close()
End Sub
它只是去3个图像,或者你想使它可以添加更多。 – 2010-08-22 13:44:00
Theres有机会在未来添加更多的picturebox,尽管它只是另一个PictureBox或两个。 – madlan 2010-08-22 13:47:40