DataSet, Mysql, recupération de valeur [Résolu]

Signaler
Messages postés
172
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2011
-
Messages postés
7
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
4 juin 2007
-
bonjour a tous !!

je voudrais savoir comment on peut récupérer une valeur d'un DataSet, ou comment recuperer une valeur d'une requette MySql.

public
DataSet Compter(
String nomtable,
String champ){

int nombre;

// On ouvre la connexionConnection.Open();

// On définit la requête SELECT à exécuter

string MySQLCmd =
"SELECT count(" + champ +
") FROM " + nomtable;

// On associe cette requête à la propriété SelectCommand du MySqlDataAdapterMyAdapter.SelectCommand =

new
MySqlCommand(MySQLCmd, Connection);

// On remplit le dataset avec le résultat de la commande SELECTMyAdapter.Fill(ds);

// On ferme la connexion le plus tôt possibleConnection.Close();

return ds;

}

j'ai vue que l'on pouvai faire ds.Tables[0] mais sa m'envoi un truc qui na rien avoir. sinon on peut le mettre dans un datagrid, mais mois je voudrais le recupéré en string ou en entier, ou regarder dans le dataset la valeur,

Merci beaucoup

7 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Salut,

Pourquoi passer par un dataset/DataApter pour ca ?
Instancies ton SqlCommand, et appele sa méthode ExecuteScalar() qui te renvoies une valeurs unique sous forme d'object. Cette valeur est la premiere colonne de la premiere ligne de ta requete (qui est de toutes facons unique dans ton cas), a savoir le résultat du Count(). Tu n'as plus qu'a la caster en int :)
Mx
MVP C# 
Messages postés
172
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2011

ok merci, il ne veut pas me le caster ??
Messages postés
172
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2011

ok ça fonctionne, merci beaucoup, je peut utiliser la meme chose pour un SELECT * FROM matable , puis faire un ExecuteScalar()  dans une variable par exemple, mais pour que j'ai tout. le mettre dans un pour ou autre boucle ??
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
En fait la il faut utiliser la méthode ExecuteReader() qui te retourne un DataReader.

ensuite,

while(tonDataReader.Read())
{
   string champ1 = tonDataReader["nomDuChamp"].ToString();
}

Mx
MVP C# 
Messages postés
172
Date d'inscription
lundi 22 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2011

Merci beaucoup ceci me débloque vraiment, encore merci et bonne soirée
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
y'a pas de quoi :)

Mx
MVP C# 
Messages postés
7
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
4 juin 2007

Bonjour,

Auriez vous le code final corespondant à cette solution ?
Mon probleme provient de la valeur retourné sous forme d'objets.

Merci de votre aide..