kkhuet
Messages postés92Date d'inscriptionlundi 16 mai 2005StatutMembreDernière intervention 3 juin 2009
-
1 juin 2005 à 12:11
kkhuet
Messages postés92Date d'inscriptionlundi 16 mai 2005StatutMembreDernière intervention 3 juin 2009
-
1 juin 2005 à 16:18
Bonjour,
archi débutante en C#.Net alors please doucement dans les explications . Comment kon fait pour savoir si le nombre d'enregistrements résultat de ma requête est égal à 0?
//On vérifie que cette société n'a
pas déjà été renseignée
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 1 juin 2005 à 12:41
A ta place, je ferais un Select count(*) plutot qu'un Select
Donc en fait :
string strRequete_local "select count (*) From Sociétés Where [N° Siret]'" + oReader.GetString(1) +"'";
OleDbCommand oCommand_local = new OleDbCommand(strRequete_local,oConnection_local);
object result = oCommand_local. ExecuteScalar ();
if(int.Parse(result.ToString()) == 0)
{
//... ton code
}
ExecuteScalar() permet de recuperer juste le premier
élément d'une requete, soit ici, la valeur retournée par le count. La
valeur retournée est de type object.
Il suffit juste, ensuite, de convertir l'objet en int, et tu as ta valeur
taoetc
Messages postés346Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention 3 septembre 20073 1 juin 2005 à 15:52
A mon avis, il manque pas grand chose pour que ca marche ca, avec une ligne en plus :
OleDbCommand oCommand_local = new OleDbCommand(strRequete_local,oConnection_local);
OleDbDataReader oReader_local = oCommand_local.ExecuteReader();
if(oReader.Read())
{ // si il a une ligne qui est retournée, alors on arrive à la lire
//pour lire toutes les lignes retournées
// while(oReader.Read())
MessageBox.Show("La société choisie existe déjà","Info BatiReport");
oReader.Close(); //pas oulbier de fermer le reader, autrement, pas content
//ton programme ne sera (dixit yoda)
}
else
{
//Si la société n'existe pas
this.t_chemin.Text = chemin ;
this.t_raison_sociale.Text = oReader.GetString(0);
this.t_siret.Text = oReader.GetString(1);
taoetc
Messages postés346Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention 3 septembre 20073 1 juin 2005 à 15:56
ou alors
oReader.HasRow renvoie false si il n'y a pas de lignes de renvoyer mais vu que dans ton exemple , tu te sert de ce que t'a renvoyé la requete pour remplir des variaible, il faut bien que tu fasses read, donc, la meilleure solution est la premeire , enfin pour moi