Recuperation de résultat de select en sql server an c#
cs_baby85
Messages postés79Date d'inscriptionmercredi 22 octobre 2008StatutMembreDernière intervention17 juin 2009
-
13 mars 2009 à 00:02
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
31 mars 2010 à 16:13
bonsoir,
je veux récupérer le résultat d'une requête select de type string et l'afficher dans un Messagebox
string req = "select nom from tableau where (num='" + 2 + "')";
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand oCommand = new SqlCommand(req, connection);
connection.Open();
oCommand.CommandText = select nom from tableau where (num='" + 2 + "')";
string f = (string)oCommand.ToString();
MessageBox.Show(f);
il affiche dans le msgbox system.data.sqlclient.sqlcommand
Merci d'avance
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 13 mars 2009 à 06:46
Bonjour,
Pour récuperer le résultat d'une requête, il faut tout d'abord l'éxécuter.
il existe plusieurs manières d'executer une requête, mais si tu es certain qu'elle ne retourne qu'une ligne utilise "ExecuteScalar"
object returnedData = oCommand.ExecuteScalar();
string f = returnedData.ToString();
MessageBox.Show(f);Si non, tu peux récuperer les resultats dans une "reader"
SqlDataReader myReader = oCommand.ExecuteReader();
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 13 mars 2009 à 17:43
Salut
"La référence d'objet n'est pas définie à une instance d'un objet." indique qu'un objet dans lequel tu cherches à accéder à une méthode ou à une propriété est null.
En l'occurence, il s'agit là de returnedData, qui a la valeur null.
S'il est null, c'est certainement que ta requête n'a rien retourné.
Au fait, ta ligne "oCommand.CommandText = select nom from tableau where (num='" + 2 + "')";" est évidemment à supprimer, puisque tu initialise la commande lors de l'instanciation de l'objet (constructeur)
Au niveau de ta requete, si "num" est un int, ne met pas d'apostrophe, et les parenthèses ne sont pas obligatoires
> "select nom from tableau where num" + 2 + ""
raf0077
Messages postés1Date d'inscriptionjeudi 24 juillet 2008StatutMembreDernière intervention31 mars 2010 31 mars 2010 à 15:41
Salut
Je sollicite votre aide pour mon projet
Mon problème est que je doit récupérer plusieurs colonnes sous des conditionnes inscrites dans des texte box, comme « ExecuteScalar() » marche avec une seul ligne.
Merci d’avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 31 mars 2010 à 16:13
Salut raf0077.
Si tu veux récupérer plusieurs champs ou plusieurs entrées, il faut utiliser un SqlDataReader :
SqlDataReader reader = oCommand.ExecuteReader();
while(reader.Read())
{
// Il va rentrer dans la boucle à chaque entrée renvoyée par ta requete
// Ensuite, tu lis les différents champs ainsi :
string maValeur = reader["NomDuChamp"].ToString();
int maValeur2 = Convert.ToInt32(reader["NomDuChamp2"]);
}
reader.Close();
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -