Tableau dans Powershell

Fermé
opayet Messages postés 3 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 10 novembre 2008 - 10 nov. 2008 à 10:47
nbonnet Messages postés 478 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 4 septembre 2013 - 23 janv. 2009 à 11:42
Bonjour,

J'ai un petit soucis pour récupérer des informations récupérés d'une BDD pour les mettent dans un tableau.

Alors voila je m'explique.
* - Je suis bloqué car je ne sais pas combien de ligne j'ai récupéré.
* - Et j'ai du mal a créé un tableau dynamique en powershell.

Je pense qu'en résolvant l'un ou l'autre je pourrais m'en sortire.

Voici mon code :
------------------------------------------------------------------------------
[void][system.reflection.Assembly]::LoadFrom("C:\Program..\MySQL\MySQL Connector Net 5.0.9\Binaries\.NET 2.0\MySQL.Data.dll")

# Initialisation des variables.
$myconnection = New-Object MySql.Data.MySqlClient.MySqlConnection
$myconnection.ConnectionString = "server=127.0.0.1;User Id=root;password=0000;database=Mabase"

# Déclaration d'un tableau vide
$Liste = @()

#Création d'une variable incrémentiel.
$NbLigne = 0

# Création de la connexion a la base de donnée.
$myconnection.Open()
$mycmd = New-Object MySql.Data.MySqlClient.MySqlCommand
$mycmd.Connection = $myconnection

# Création de la requete SQL.
$mycmd.CommandText = "SELECT * FROM matable WHERE 1"

# Execution de la requete.
$ResultRequete = $mycmd.ExecuteReader()

# Parcourt de la liste des résultats.
while($ResultRequete .Read()){

# Récupération de l'information qui m'interesse pour la mettre dans une table.
$Liste[$NbLigne] = $ResultRequete .GetString(0)


$NbLigne = $NbLigne + 1
}

# Fermeture de la connexion a la base.
$myconnection.Close()

-------------------------------------------------------------

Alors code tout simple.
J'ai le message d'erreur : Array assignment failed because index '0' was out of range.
+ $Liste[$ <<<< NbLigne] = ...

Naturellement en C++ j'aurais mis un $Liste = new Tableau[NbLigne] si je savais combien de ligne contient contenais le résultat de ma requete.
Mais je début en powershell et je suis un peu largé.

Si vous avez des informations merci d'avance.
A voir également:

2 réponses

nbonnet Messages postés 478 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 4 septembre 2013 46
15 janv. 2009 à 11:10
slt je ne connait pas bxp power shell mais tu peux essayer de trouver le nombre de ligne que tu récupére en ajoutant un count dans ta requete sql ainsi tu pourrais faire ton tableau selon cette valeur.

deplus d'après le message d'erreur c'est la déclaration du tableau qui ne va pas.

Je suis en train de rechercher comment on fait si je trouve je re post.

++
0
Ok merci,

J'attend ton post.
0
nbonnet Messages postés 478 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 4 septembre 2013 46
23 janv. 2009 à 11:42
bon voila un bout de code
$nbligne
$tabnom = 0..nbligne-1
#c'est tableau mais le hic c'est qu'il met les valeur de 0 à 9 dans les cellules
$valeur
#recupération de la requette par exemple
$j
#cumul

while ($tabnom[$j]<nbligne)
{
$tabnom[$j]=$valeur

$j=$j+1
}
#recup info


c'est tout ce que j'ai put faire avec mes pauvres notion d'algo et de dev.

a++
0