我是新用vb和sql,有人可以帮我找回图像,当我在列表视图中单击我的选择项目,查看它的图片框,这样我可以更新值。
Private Sub lvRegistered_SelectedIndexChanged(sender As Object, e As
EventArgs) Handles lvRegisteredV1.SelectedIndexChanged
If lvRegisteredV1.SelectedItems.Count > 0 Then
pbRear.Image = Image.FromFile(lvRegisteredV1.SelectedItems(0).ToString)
End If
End Sub
------i have tried this but shows an error "An unhandled exception
of type 'System.NotSupportedException' occurred in mscorlib.dll
Additional information: The given path's format is not supported."
你做的.Tag
属性的一个不错的选择。它可以容纳任何类型的对象。我猜你正在使用一个DataReader填充您的列表视图在一个循环。您正在创建在每次迭代一个新的列表视图项。这ListViewItem
是你将填补与原始数据.TAG属性。然后,当选择的项目您检索的原始数据转换为字节数组,并将其放置在一个MemoryStream。该.Image
属性然后从流填满。
只是为了简化,我用一个单一的记录和一个TextBox。
Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
RetrieveImage()
Using MS As New MemoryStream(CType(txtName.Tag, Byte()))
PictureBox1.Image = Image.FromStream(MS)
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End Using
End Sub
Private Sub RetrieveImage()
Using cn As New SqlConnection(My.Settings.SmallDBConnection)
Using cmd As New SqlCommand("Select * From Sales.Customer Where CustomerID = 2", cn)
cn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader
dr.Read()
txtName.Text = dr("CustomerName").ToString
txtName.Tag = dr("Picture")
End Using
End Using
End Using
End Sub