[C#.Net]compter le nombre d'enregistrements [Résolu]

kkhuet 92 Messages postés lundi 16 mai 2005Date d'inscription 3 juin 2009 Dernière intervention - 1 juin 2005 à 12:11 - Dernière réponse : kkhuet 92 Messages postés lundi 16 mai 2005Date d'inscription 3 juin 2009 Dernière intervention
- 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

string
strConnexion_local = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry
Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=;Data
Source='" + Application.StartupPath + "\\LocalParam.mdb';Password=;Jet
OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions = 1 ; Provider ='Microsoft.Jet.OLEDB.4.0';Jet OLEDB:System database=;Jet
OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database
Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on
Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet
OLEDB:Encrypt Database=False";






OleDbConnection oConnection_local = new
OleDbConnection(strConnexion_local);


oConnection_local.Open();

if
(oConnection_local.State ==
System.Data.ConnectionState.Open){

string strRequete_local
"select * From Sociétés Where [N° Siret]'" + oReader.GetString(1)
+"'";


OleDbCommand oCommand_local = new
OleDbCommand(strRequete_local,oConnection_local);




OleDbDataReader oReader_local =
oCommand_local.ExecuteReader();







//Si la société n'existe
pas

if
(oReader_local.IsDBNull(0) == true){ <-- c'est là ke je sais pas koi mettre pour compter le nombre d'enregistrements

this.t_chemin.Text =
chemin ;

this.t_raison_sociale.Text =
oReader.GetString(0);

this.t_siret.Text =
oReader.GetString(1);






} //sinon

else

MessageBox.Show("La société choisie existe déjà","Info
BatiReport");

}


D'avance merci pour la réponse

NINI
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 1 juin 2005 à 12:41
3
Merci
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


Mx

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de MorpionMx
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 1 juin 2005 à 15:52
0
Merci
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);



}
Commenter la réponse de taoetc
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 1 juin 2005 à 15:56
0
Merci
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
Commenter la réponse de taoetc
taoetc 346 Messages postés lundi 8 septembre 2003Date d'inscription 3 septembre 2007 Dernière intervention - 1 juin 2005 à 15:57
0
Merci
Et le oReader.Close() est mal placé il faut le mettre dans le else, et apres je ferme ma gueule
Commenter la réponse de taoetc
kkhuet 92 Messages postés lundi 16 mai 2005Date d'inscription 3 juin 2009 Dernière intervention - 1 juin 2005 à 16:08
0
Merci
pas mal le ptit 'dixit yoda' ptit padawan taoetc
Commenter la réponse de kkhuet
kkhuet 92 Messages postés lundi 16 mai 2005Date d'inscription 3 juin 2009 Dernière intervention - 1 juin 2005 à 16:18
0
Merci
et au fait merci pour la réponse taoetc..et MorpionMx aussi d'ailleurs
Commenter la réponse de kkhuet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.