Listview bdd access

Résolu
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012 - 3 oct. 2008 à 21:02
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 4 oct. 2008 à 15:14
HELO

aidez moi svp

je voudrais charger une table en Access dans une listview.
Je suis sur que c'est simple mais je ne sais pas comment relier les colonnes de ma table aux colonne de ma listview

j'ai essayer ce code mais j'ai une erreur






Dim



objConnection

As



New
OleDbConnection(

"Provider=Microsoft.Jet.OLEDB.4.0;Data source=L:\Technique\bdtechnique.mdb;"
)


Dim
objDataAdapter

As
OleDbDataAdapter


Dim
objDataSet

As



New
DataSet


Dim
objDataTable

As
DataTable


Dim
objDataRow

As
DataRow


Dim
SQLString

As



String






Dim
LviItem

As
ListViewItem


Dim
LsiSubItem

As
ListViewItem.ListViewSubItem 

ListView1.AllowColumnReorder =


True



'R‚organisation des colonnes manuellement

ListView1.FullRowSelect =




True



'S‚lection de la ligne complete

ListView1.View = View.Details




'Le listView est en mode D‚tail






' Ajoute le Nom des colonnes

ListView1.Columns.Add(




"Num‚ros"
, 60, HorizontalAlignment.Left)ListView1.Columns.Add(


"D‚finition"
, 200, HorizontalAlignment.Left)ListView1.Columns.Add(


"Action"
, 115, HorizontalAlignment.Center)


' Commande pour lire dans la base de donn‚e la Table et met le en ordre ascendant par date

SQLString =




"SELECT Num‚ros, D‚finition, Action FROM Pr‚ventifs ORDER BY Num‚ros ASC"

objConnection.Open()


objDataAdapter =




New
OleDb.OleDbDataAdapter(SQLString, objConnection)objDataAdapter.Fill(objDataSet)


'lvTelephone.Items.Clear()






' Garde en m‚moire les informations qui vont aller dans le lvtelephone






' Il bloque le rafraichissement de lvtelephone

ListView1.BeginUpdate()







'R‚pete chaque Table dans le DataSet collection.






For



Each
objDataTable

In
objDataSet.Tables


'R‚pete chaque ligne de la table






For



Each
objDataRow

In
objDataTable.RowsLviItem = ListView1.Items.Add(objDataRow(


"Nom"
))


'LviItem.UseItemStyleForSubItems = False '<--- Pour activer la couleur dans les subitems

LsiSubItem = LviItem.SubItems.Add(objDataRow(




"D‚finition"
))


'LsiSubItem.ForeColor = Color.Red ' <--- Mettre la couleur rouge

LsiSubItem = LviItem.SubItems.Add(objDataRow(




"Action"
))


'LsiSubItem.ForeColor = Color.Purple ' <--- Mettre la couleur poupre






Next






Next






' Affiche le contenu au complet de lvtelephone

ListView1.EndUpdate()


objConnection.Close()

A+

10 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 oct. 2008 à 23:22
Ah c'est plus clair

C'est que tu as des enregistrements null dans ta base de données

normalement en transformant
objDataRow("....." ) --> objDataRow(
"......" ).ToString()

Utilise option explicite et option strict dans vb.net
car objDataRow renvoie un object et non un string

dbnull.ToString() --> String.Empty    '(normalement)

Sinon test la valeur avant de l'ecrire dans ton listview

if( not
objDataRow("....." ).Equals(DbNull.Value)) then
 
LsiSubItem = LviItem.SubItems.Add(objDataRow("...."))

end if 

Bon coding
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 oct. 2008 à 11:50
C'est pourtant pas compliqué

Avec le débugger tu regarde la requete SQL générée

Elle doit etre avoir la valeur suivante
SQLString "SELECT Num,ros, Nommachine,D,finition, Action,Remarque FROM Pr,ventifs where semaine '1'"
soit
SQLString = "SELECT Num,ros, Nommachine,D,finition, Action,Remarque FROM Pr,ventifs where " & (ComboBox3.Text) &
"='" & 1 &
"'"
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
3 oct. 2008 à 23:03
Salut,

Merci d'indiquer l'erreur c'est plus pratique pour trouver le problème?

Un p'tit try catch finally serait le bienvenue
objConnection.Close() dans le finally
0
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012
3 oct. 2008 à 23:13
Sorry

voila mon 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 'DBNull' en 'String'.     'Public Overrides Function Add(value As
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012
4 oct. 2008 à 09:37
SUPER MERCI
0
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012
4 oct. 2008 à 10:13
je te remerci pour ta reponce

mais j'ai encor un problème je n'arrive pas a faire une relation la relation est dans une colonne que je ne dois pas afficher

voici le code

on

As
New OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data source=L:\Technique\bdtechnique.mdb;")

Dim objDataAdapter
As OleDbDataAdapter

Dim objDataSet
As
New DataSet

Dim objDataTable
As DataTable

Dim objDataRow
As DataRow

Dim SQLString
As
String

Dim LviItem
As ListViewItem

Dim LsiSubItem
As ListViewItem.ListViewSubItem 

ListView1.AllowColumnReorder =

True
'R‚organisation des colonnes manuellementListView1.FullRowSelect =

True
'S‚lection de la ligne completeListView1.View = View.Details

'Le listView est en mode D‚tail

' Ajoute le Nom des colonnesListView1.Columns.Add(

"Num‚ros", 80, HorizontalAlignment.Left)ListView1.Columns.Add(

"Nommachine", 150, HorizontalAlignment.Left)ListView1.Columns.Add(

"D‚finition", 300, HorizontalAlignment.Left)ListView1.Columns.Add(

"Action", 300, HorizontalAlignment.Center)ListView1.Columns.Add(

"Remarque", 300, HorizontalAlignment.Center)

' Commande pour lire dans la base de donn‚e la Table et met le en ordre ascendant par dateSQLString =

"SELECT Num‚ros, Nommachine,D‚finition, Action,Remarque FROM Pr‚ventifs where " & (ComboBox3.Text) &
"='" & 1 &
"'"""objConnection.Open()

objDataAdapter =

New OleDb.OleDbDataAdapter(SQLString, objConnection)objDataAdapter.Fill(objDataSet)

'lvTelephone.Items.Clear()

' Garde en m‚moire les informations qui vont aller dans le lvtelephone

' Il bloque le rafraichissement de lvtelephoneListView1.BeginUpdate()

'R‚pete chaque Table dans le DataSet collection.

For
Each objDataTable
In objDataSet.Tables

'R‚pete chaque ligne de la table

For
Each objDataRow
In objDataTable.RowsLviItem = ListView1.Items.Add(objDataRow(

"Num‚ros").ToString)
'LviItem.UseItemStyleForSubItems False '<--- Pour activer la couleur dans les subitemsLsiSubItem LviItem.SubItems.Add(objDataRow(

"Nommachine").ToString)
'LsiSubItem.ForeColor Color.Red ' <--- Mettre la couleur rougeLsiSubItem LviItem.SubItems.Add(objDataRow(

"D‚finition").ToString)
'LsiSubItem.ForeColor Color.Purple ' <--- Mettre la couleur poupreLsiSubItem LviItem.SubItems.Add(objDataRow(

"Action").ToString)
'LsiSubItem.ForeColor Color.Purple ' <--- Mettre la couleur poupreLsiSubItem LviItem.SubItems.Add(objDataRow(

"Remarque").ToString)

'LsiSubItem.ForeColor = Color.Purple ' <--- Mettre la couleur poupre

Next

Next

' Affiche le contenu au complet de lvtelephoneListView1.EndUpdate()

objConnection.Close()

 

End
Sub

et mon message d'erreure est            
Erreur de syntaxe (opérateur absent) dans l'expression 'semaine 33='1'"'.

merci
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 oct. 2008 à 10:25
Ta requete est fausse

Gere pour que ta requete deviennent
il semble que ta colonne ait un espace (pas une bonne pratique)
Mets dans la requete [semaine 33] = '1'
0
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012
4 oct. 2008 à 11:41
ça ne va pas il me donne cette erreur

Erreur de syntaxe dans la chaîne dans l'expression 'semaine33='1'"'.

je charger de manière suivante

SQLString = "SELECT Num,ros, Nommachine,D,finition, Action,Remarque FROM Pr,ventifs where " & (ComboBox3.Text) &
"='" & 1 &
"'"""
0
inraf Messages postés 104 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 15 novembre 2012
4 oct. 2008 à 14:08
je voi mon problème ce sont met ""
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
4 oct. 2008 à 15:14
Tu n'aurais pas ce probleme avec des requetes parametrees.

Bonne continuation
0
Rejoignez-nous