Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récuperer images venant d'une BDD Access dans ListView

2 réponses
Avatar
Tchouny
Voici mon code:

con.ConnectionString =

"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" &
My.Application.Info.DirectoryPath & "\MonnaieDB.mdb"
con.Open()

Dim ds AsNew DataSet

Dim da As OleDb.OleDbDataAdapter

Dim sql AsString
sql = "SELECT * FROM Monnaie"
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "Liste_Monnaie")
con.Close()


Dim i AsInteger
For i = 0 To ds.Tables("Liste_Monnaie").Rows.Count - 1
Me.ListView1.BeginUpdate()
Dim c AsByte() = ds.Tables("Liste_Monnaie").Rows(i).Item(10)
Me.ListView1.Items.Add(TypeDescriptor.GetConverter(GetType(Image)).ConvertFrom(c))
Me.ListView1.EndUpdate()
Next

Voici le message d'erreur:

La résolution de surcharge a échoué, car aucun 'Add' Public ne peut être
appelé avec ces arguments :
'Public Overrides Function Add(text As String) As
System.Windows.Forms.ListViewItem':
L'argument qui correspond au paramètre 'text' ne peut pas être
converti de 'Bitmap' en 'String'.
'Public Overrides Function Add(value As
System.Windows.Forms.ListViewItem) As System.Windows.Forms.ListViewItem':
L'argument qui correspond au paramètre 'value' ne peut pas être
converti de 'Bitmap' en 'ListViewItem'

Quelqu'un a une idée??
Merci d'avance

2 réponses

Avatar
Gilles TOURREAU
Le Sun, 09 Sep 2007 13:14:00 +0200, Tchouny
a écrit:

Voici mon code:

con.ConnectionString >
"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" &
My.Application.Info.DirectoryPath & "MonnaieDB.mdb"
con.Open()

Dim ds AsNew DataSet

Dim da As OleDb.OleDbDataAdapter

Dim sql AsString
sql = "SELECT * FROM Monnaie"
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "Liste_Monnaie")
con.Close()


Dim i AsInteger
For i = 0 To ds.Tables("Liste_Monnaie").Rows.Count - 1
Me.ListView1.BeginUpdate()
Dim c AsByte() = ds.Tables("Liste_Monnaie").Rows(i).Item(10)
Me.ListView1.Items.Add(TypeDescriptor.GetConverter(GetType(Image)).ConvertFrom(c))
Me.ListView1.EndUpdate()
Next

Voici le message d'erreur:

La résolution de surcharge a échoué, car aucun 'Add' Public ne peut être
appelé avec ces arguments :
'Public Overrides Function Add(text As String) As
System.Windows.Forms.ListViewItem':
L'argument qui correspond au paramètre 'text' ne peut pas être
converti de 'Bitmap' en 'String'.
'Public Overrides Function Add(value As
System.Windows.Forms.ListViewItem) As System.Windows.Forms.ListViewItem':
L'argument qui correspond au paramètre 'value' ne peut pas être
converti de 'Bitmap' en 'ListViewItem'

Quelqu'un a une idée??
Merci d'avance



La méthode Add() des Items de ListView ne prennent pas des images en
paramètres.

Il faut utiliser des ImageList et utiliser la méthode :

public virtual ListViewItem Add (
string text,
int imageIndex
)

Où imageIndex est l'Index de l'image à afficher pour l'élément.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Tchouny
J'ai ré écrit le code avec une ImageList et cela fonctionne.
Voici le code:
Dim image As Image
Dim x As Byte() = ds.Tables("Liste_Monnaie").Rows(0).Item(10)
image = TypeDescriptor.GetConverter(GetType(Image)).ConvertFrom(x)
Me.ImageList1.Images.Add(image, Nothing)
Dim photo As ListViewItem = New ListViewItem("test", 0)
Me.ListView1.Items.Add(photo)

Merci beaucoup.


"Gilles TOURREAU" a écrit :

Le Sun, 09 Sep 2007 13:14:00 +0200, Tchouny
a écrit:

> Voici mon code:
>
> con.ConnectionString > >
> "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" &
> My.Application.Info.DirectoryPath & "MonnaieDB.mdb"
> con.Open()
>
> Dim ds AsNew DataSet
>
> Dim da As OleDb.OleDbDataAdapter
>
> Dim sql AsString
> sql = "SELECT * FROM Monnaie"
> da = New OleDb.OleDbDataAdapter(sql, con)
> da.Fill(ds, "Liste_Monnaie")
> con.Close()
>
>
> Dim i AsInteger
> For i = 0 To ds.Tables("Liste_Monnaie").Rows.Count - 1
> Me.ListView1.BeginUpdate()
> Dim c AsByte() = ds.Tables("Liste_Monnaie").Rows(i).Item(10)
> Me.ListView1.Items.Add(TypeDescriptor.GetConverter(GetType(Image)).ConvertFrom(c))
> Me.ListView1.EndUpdate()
> Next
>
> Voici le message d'erreur:
>
> La résolution de surcharge a échoué, car aucun 'Add' Public ne peut être
> appelé avec ces arguments :
> 'Public Overrides Function Add(text As String) As
> System.Windows.Forms.ListViewItem':
> L'argument qui correspond au paramètre 'text' ne peut pas être
> converti de 'Bitmap' en 'String'.
> 'Public Overrides Function Add(value As
> System.Windows.Forms.ListViewItem) As System.Windows.Forms.ListViewItem':
> L'argument qui correspond au paramètre 'value' ne peut pas être
> converti de 'Bitmap' en 'ListViewItem'
>
> Quelqu'un a une idée??
> Merci d'avance

La méthode Add() des Items de ListView ne prennent pas des images en
paramètres.

Il faut utiliser des ImageList et utiliser la méthode :

public virtual ListViewItem Add (
string text,
int imageIndex
)

Où imageIndex est l'Index de l'image à afficher pour l'élément.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr