Question
[Résolu] Base de données dans une ListView
- Riblito
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 0
il y a 8 ans 8 mois #24188
par Riblito
[Résolu] Base de données dans une ListView a été créé par Riblito
............. 
Re bonjour
Toujours sur mon script, j'ai décidé de passer mes listbox en listview ... plus propre je pense ....
j'ai jamais fais de listviews.
J'ai donc trouvé comment rentrer des choses dans la listview, mais en ligne ....mais je trouve pas comment rentrer des données en colonne .... ( données qui viennent de ma base de données SQL.
Pour ma listbox j'avais utilisé cela :
[code:1][void][system.reflection.assembly]::LoadWithPartialName(\"Mysql.Data\"«»)
$connstr = \"server=localhost;uid=root;password=5693;database=info_isec;port=3306\"
$ObjMysql = New-Object Mysql.Data.Mysqlclient.Mysqlconnection
$ObjMysql.ConnectionString = $connstr
$ObjMysql.open()
$req = \"select * from t_locaux\"
$Sqlcommand = new-object Mysql.data.mysqlclient.mysqlcommand($req,$ObjMysql)
$mysqlAdapt = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Sqlcommand)
$mysqldataset = new-object System.Data.DataSet
$recordcount = $mysqlAdapt.fill($mysqldataset, \"data\"«»)
$collection = $mysqldataset.tables[0].cli_Nom_loc
$collection3 = $mysqldataset.tables[0].cli_Bat_loc
$listboxloList.Items.AddRange($collection)[/code:1]
Et donc j'ai bien essayé plusieurs façon différentes, mais je me retrouve avec des erreurs, ou alors des 0 partout.
J'y suis depuis se matin 7h et la je commence à sécher
.....
Si vous aviez une idée... voici un exemple de ma base de donnée <br><br>Message édité par: Arnaud, à: 12/09/17 22:46
Re bonjour
Toujours sur mon script, j'ai décidé de passer mes listbox en listview ... plus propre je pense ....
j'ai jamais fais de listviews.
J'ai donc trouvé comment rentrer des choses dans la listview, mais en ligne ....mais je trouve pas comment rentrer des données en colonne .... ( données qui viennent de ma base de données SQL.
Pour ma listbox j'avais utilisé cela :
[code:1][void][system.reflection.assembly]::LoadWithPartialName(\"Mysql.Data\"«»)
$connstr = \"server=localhost;uid=root;password=5693;database=info_isec;port=3306\"
$ObjMysql = New-Object Mysql.Data.Mysqlclient.Mysqlconnection
$ObjMysql.ConnectionString = $connstr
$ObjMysql.open()
$req = \"select * from t_locaux\"
$Sqlcommand = new-object Mysql.data.mysqlclient.mysqlcommand($req,$ObjMysql)
$mysqlAdapt = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Sqlcommand)
$mysqldataset = new-object System.Data.DataSet
$recordcount = $mysqlAdapt.fill($mysqldataset, \"data\"«»)
$collection = $mysqldataset.tables[0].cli_Nom_loc
$collection3 = $mysqldataset.tables[0].cli_Bat_loc
$listboxloList.Items.AddRange($collection)[/code:1]
Et donc j'ai bien essayé plusieurs façon différentes, mais je me retrouve avec des erreurs, ou alors des 0 partout.
J'y suis depuis se matin 7h et la je commence à sécher
Si vous aviez une idée... voici un exemple de ma base de donnée <br><br>Message édité par: Arnaud, à: 12/09/17 22:46
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 8 mois #24196
par Philippe
Réponse de Philippe sur le sujet Re:base de donnée dans une ListView
a tu regarder avec
ce super tuto
en Français de mickyballadelli
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 8 mois #24197
par Philippe
Réponse de Philippe sur le sujet Re:base de donnée dans une ListView
pour résume il te faut faire ceci, a toi d'adapter les paramètres de taille et forme de la listview :
[code:1]
$list = New-Object System.Windows.Forms.ListView
$list.TabIndex = 3
$list.Location = New-Object System.Drawing.Point(3,30)
$list.Size = New-Object System.Drawing.Size(605, 382)
$list.View = \"Details\"
$list.GridLines = $true
$list.FullRowSelect = $true
$list.AllowColumnReorder = $true
$list.Scrollable = $true
$list.Sorting ='None'
$list.add_ColumnClick({SortList $_.Column})
[void][system.reflection.assembly]::LoadWithPartialName(\"Mysql.Data\"«»)
$connstr = \"server=localhost;uid=root;password=5693;database=info_isec;port=3306\"
$ObjMysql = New-Object Mysql.Data.Mysqlclient.Mysqlconnection
$ObjMysql.ConnectionString = $connstr
$ObjMysql.open()
$req = \"select * from t_locaux\"
$Sqlcommand = new-object Mysql.data.mysqlclient.mysqlcommand($req,$ObjMysql)
$mysqlAdapt = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Sqlcommand)
$mysqldataset = new-object System.Data.DataSet
$recordcount = $mysqlAdapt.fill($mysqldataset, \"data\"«»)
$list.BeginUpdate()
$list.items.Clear()
foreach ($ligne in $mysqldataset.tables[0])
{
$item = New-Object System.Windows.Forms.ListViewItem($ligne.cli_Nom_loc)
[Void]$item.SubItems.Add($ligne.cli_Bat_loc)
[Void] $list.Items.Add($item)
}
$list.EndUpdate()
[/code:1]
edit : rajout de la ligne [Void] $list.Items.Add($item)<br><br>Message édité par: 6ratgus, à: 7/09/17 12:49
[code:1]
$list = New-Object System.Windows.Forms.ListView
$list.TabIndex = 3
$list.Location = New-Object System.Drawing.Point(3,30)
$list.Size = New-Object System.Drawing.Size(605, 382)
$list.View = \"Details\"
$list.GridLines = $true
$list.FullRowSelect = $true
$list.AllowColumnReorder = $true
$list.Scrollable = $true
$list.Sorting ='None'
$list.add_ColumnClick({SortList $_.Column})
[void][system.reflection.assembly]::LoadWithPartialName(\"Mysql.Data\"«»)
$connstr = \"server=localhost;uid=root;password=5693;database=info_isec;port=3306\"
$ObjMysql = New-Object Mysql.Data.Mysqlclient.Mysqlconnection
$ObjMysql.ConnectionString = $connstr
$ObjMysql.open()
$req = \"select * from t_locaux\"
$Sqlcommand = new-object Mysql.data.mysqlclient.mysqlcommand($req,$ObjMysql)
$mysqlAdapt = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Sqlcommand)
$mysqldataset = new-object System.Data.DataSet
$recordcount = $mysqlAdapt.fill($mysqldataset, \"data\"«»)
$list.BeginUpdate()
$list.items.Clear()
foreach ($ligne in $mysqldataset.tables[0])
{
$item = New-Object System.Windows.Forms.ListViewItem($ligne.cli_Nom_loc)
[Void]$item.SubItems.Add($ligne.cli_Bat_loc)
[Void] $list.Items.Add($item)
}
$list.EndUpdate()
[/code:1]
edit : rajout de la ligne [Void] $list.Items.Add($item)<br><br>Message édité par: 6ratgus, à: 7/09/17 12:49
Connexion ou Créer un compte pour participer à la conversation.
- Riblito
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 0
il y a 8 ans 8 mois #24198
par Riblito
Réponse de Riblito sur le sujet Re:base de donnée dans une ListView
merci pour la réponse 
Oui j'ai déjà lu le tuto ! mais j'ai déjà essayé plusieurs façon de faire sans résultat ...
La tienne non plus ne fonctionne pas. Mais j'ai du encore rater un truc.... Je dois finir le script dans une semaine, et j'en fais trop ... j'en deviens fou
[code:1]$list = New-Object System.Windows.Forms.ListView
$list.TabIndex = 3
$list.Location = New-Object System.Drawing.Point(400,30)
$list.Size = New-Object System.Drawing.Size(360, 320)
$list.View = \"Details\"
$list.GridLines = $true
$list.FullRowSelect = $true
$list.AllowColumnReorder = $true
$list.Scrollable = $true
$list.Sorting ='None'
$tag = New-Object -TypeName PSCustomObject -Property @{
sortOrder = [System.Windows.Forms.SortOrder]::Ascending
}
$col = $list.Columns.Add(\"ID\", 60)
$col.Tag = $tag
$col = $list.Columns.Add(\"Nom\", 110)
$col.Tag = $tag
$col = $list.Columns.Add(\"Batiment\", 110)
$col.Tag = $tag
[void][system.reflection.assembly]::LoadWithPartialName(\"Mysql.Data\"«»)
$connstr = \"server=localhost;uid=root;password=5693;database=info_isec;port=3306\"
$ObjMysql = New-Object Mysql.Data.Mysqlclient.Mysqlconnection
$ObjMysql.ConnectionString = $connstr
$ObjMysql.open()
$req = \"select * from t_locaux\"
$Sqlcommand = new-object Mysql.data.mysqlclient.mysqlcommand($req,$ObjMysql)
$mysqlAdapt = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Sqlcommand)
$mysqldataset = new-object System.Data.DataSet
$recordcount = $mysqlAdapt.fill($mysqldataset, \"data\"«»)
$list.BeginUpdate()
$list.items.Clear()
foreach ($ligne in $mysqldataset.tables[0])
{
$item = New-Object System.Windows.Forms.ListViewItem($ligne.cli_Nom_loc)
[Void]$item.SubItems.Add($ligne.cli_Bat_loc)
}
$list.EndUpdate()[/code:1]
Oui j'ai déjà lu le tuto ! mais j'ai déjà essayé plusieurs façon de faire sans résultat ...
La tienne non plus ne fonctionne pas. Mais j'ai du encore rater un truc.... Je dois finir le script dans une semaine, et j'en fais trop ... j'en deviens fou
[code:1]$list = New-Object System.Windows.Forms.ListView
$list.TabIndex = 3
$list.Location = New-Object System.Drawing.Point(400,30)
$list.Size = New-Object System.Drawing.Size(360, 320)
$list.View = \"Details\"
$list.GridLines = $true
$list.FullRowSelect = $true
$list.AllowColumnReorder = $true
$list.Scrollable = $true
$list.Sorting ='None'
$tag = New-Object -TypeName PSCustomObject -Property @{
sortOrder = [System.Windows.Forms.SortOrder]::Ascending
}
$col = $list.Columns.Add(\"ID\", 60)
$col.Tag = $tag
$col = $list.Columns.Add(\"Nom\", 110)
$col.Tag = $tag
$col = $list.Columns.Add(\"Batiment\", 110)
$col.Tag = $tag
[void][system.reflection.assembly]::LoadWithPartialName(\"Mysql.Data\"«»)
$connstr = \"server=localhost;uid=root;password=5693;database=info_isec;port=3306\"
$ObjMysql = New-Object Mysql.Data.Mysqlclient.Mysqlconnection
$ObjMysql.ConnectionString = $connstr
$ObjMysql.open()
$req = \"select * from t_locaux\"
$Sqlcommand = new-object Mysql.data.mysqlclient.mysqlcommand($req,$ObjMysql)
$mysqlAdapt = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Sqlcommand)
$mysqldataset = new-object System.Data.DataSet
$recordcount = $mysqlAdapt.fill($mysqldataset, \"data\"«»)
$list.BeginUpdate()
$list.items.Clear()
foreach ($ligne in $mysqldataset.tables[0])
{
$item = New-Object System.Windows.Forms.ListViewItem($ligne.cli_Nom_loc)
[Void]$item.SubItems.Add($ligne.cli_Bat_loc)
}
$list.EndUpdate()[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 8 mois #24199
par Philippe
Réponse de Philippe sur le sujet Re:base de donnée dans une ListView
a tu un message d'erreur ?
et peut tu me donner le premier message d'erreur ?
pour info dans cette partie les ligne avec TAG ne sert que pour les trie par colonne
et il te manque la fonction sortlist et le add_ColumnClick pour faire fonctionner le trie
[code:1]$tag = New-Object -TypeName PSCustomObject -Property @{
sortOrder = [System.Windows.Forms.SortOrder]::Ascending
}
$col = $list.Columns.Add(\"ID\", 60)
$col.Tag = $tag
$col = $list.Columns.Add(\"Nom\", 110)
$col.Tag = $tag
$col = $list.Columns.Add(\"Batiment\", 110)
$col.Tag = $tag
[/code:1]
refait un essai que avec les add :
[code:1]$col = $list.Columns.Add(\"ID\", 60)
$col = $list.Columns.Add(\"Nom\", 110)
$col = $list.Columns.Add(\"Batiment\", 110)
[/code:1]
autre modif : il faut rajouter une ligne dans la boucle comme ceci :
[code:1]$list.BeginUpdate()
$list.items.Clear()
foreach ($ligne in $mysqldataset.tables[0])
{
$item = New-Object System.Windows.Forms.ListViewItem($ligne.cli_Nom_loc)
[Void]$item.SubItems.Add($ligne.cli_Bat_loc)
[Void] $list.Items.Add($item)
}
$list.EndUpdate()
[/code:1]<br><br>Message édité par: 6ratgus, à: 7/09/17 12:48
et peut tu me donner le premier message d'erreur ?
pour info dans cette partie les ligne avec TAG ne sert que pour les trie par colonne
et il te manque la fonction sortlist et le add_ColumnClick pour faire fonctionner le trie
[code:1]$tag = New-Object -TypeName PSCustomObject -Property @{
sortOrder = [System.Windows.Forms.SortOrder]::Ascending
}
$col = $list.Columns.Add(\"ID\", 60)
$col.Tag = $tag
$col = $list.Columns.Add(\"Nom\", 110)
$col.Tag = $tag
$col = $list.Columns.Add(\"Batiment\", 110)
$col.Tag = $tag
[/code:1]
refait un essai que avec les add :
[code:1]$col = $list.Columns.Add(\"ID\", 60)
$col = $list.Columns.Add(\"Nom\", 110)
$col = $list.Columns.Add(\"Batiment\", 110)
[/code:1]
autre modif : il faut rajouter une ligne dans la boucle comme ceci :
[code:1]$list.BeginUpdate()
$list.items.Clear()
foreach ($ligne in $mysqldataset.tables[0])
{
$item = New-Object System.Windows.Forms.ListViewItem($ligne.cli_Nom_loc)
[Void]$item.SubItems.Add($ligne.cli_Bat_loc)
[Void] $list.Items.Add($item)
}
$list.EndUpdate()
[/code:1]<br><br>Message édité par: 6ratgus, à: 7/09/17 12:48
Connexion ou Créer un compte pour participer à la conversation.
- Riblito
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 96
- Remerciements reçus 0
il y a 8 ans 8 mois #24200
par Riblito
Réponse de Riblito sur le sujet Re:base de donnée dans une ListView
[code:1]Impossible de convertir l'argument «item» (valeur «») de «Add» en type «System.Windows.Forms.ListViewItem+ListViewSubItem»: «Impossible de convertir la valeur «» en type «System.Windows.Forms.ListViewItem+ListViewSubItem». Erreur: «Cast non valide de
'System.DBNull' en 'System.Windows.Forms.ListViewItem+ListViewSubItem'.»»
Au caractère G:\profil\Desktop\evolution.ps1:325 : 9
+ [Void]$item.SubItems.Add($ligne.cli_Bat_loc)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:«») [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument[/code:1]
cela indique la ligne :
Void]$item.SubItems.Add($ligne.cli_Bat_loc)<br><br>Message édité par: elemremy, à: 7/09/17 13:06
'System.DBNull' en 'System.Windows.Forms.ListViewItem+ListViewSubItem'.»»
Au caractère G:\profil\Desktop\evolution.ps1:325 : 9
+ [Void]$item.SubItems.Add($ligne.cli_Bat_loc)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:«») [], MethodException
+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument[/code:1]
cela indique la ligne :
Void]$item.SubItems.Add($ligne.cli_Bat_loc)<br><br>Message édité par: elemremy, à: 7/09/17 13:06
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.050 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Base de données dans une ListView