Je voulais extraire les images contenues dans une des colonnes de ma BDD Access dans une ListView mais je n'ai rien trouvé à ce sujet. J'ai donc planché là dessus et pondu un petit code.
Une Form + un splitter container. L'un des containers contient une PictureBox ancrée et l'autre une ListView (LvTest)avec une ImageList.
Source / Exemple :
Dim con As New OleDb.OleDbConnection
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & My.Application.Info.DirectoryPath & "\Votre BDD.mdb"
con.Open()
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String
sql = "SELECT * FROM nom de la table"
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "test")
ImageList1.Images.Clear()
ListView1.Items.Clear()
Try
Dim i As Integer
For i = 0 To ds.Tables("test").Rows.Count - 1
If ds.Tables("test").Rows(i).Item(le numéro de
la colonne) is DBNull.Value Then
Dim ImageNull As Image
ImageNull = My.Resources.ImageNull 'image que vous avez créé et qui se trouve dans vos fichiers resources
Me.ImageList1.Images.Add(ImageNull, Nothing)
Dim photo1 As ListViewItem = New ListViewItem("Ce que vous voulez", i)
Me.LvTest.Items.Add(photo1)
Else
Dim x As Byte() = ds.Tables("test").Rows(i).Item(le numéro de la colonne)
Dim image As Image
image = TypeDescriptor.GetConverter(GetType(Image)).ConvertFrom(x)
Me.ImageList1.Images.Add(image, Nothing)
Dim photo2 As ListViewItem = New ListViewItem("Ce que vous voulez", i)
Me.LvPièce.Items.Add(photo2)
End If
Next
Catch ex As Exception
MsgBox(ex, MsgBoxStyle.Information)
End Try
con.Close()
Conclusion :
J'ai insérer une image DBNull car sinon vous générez une erreur quand l'une des rows ne contient rien (DbNull.Value retourne 0)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.