Erreur ! [Résolu]

woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 2 juin 2006 à 16:30 - Dernière réponse : cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 2 juin 2006 à 19:44
Je vous présente mon code avec les erreurs générées par la compilateur que je n'arrive pas à déboger.

public
void NettoyeReferencesCommunes(){

InitialiserCorrespondances();

string req;req =

"SELECT nom, commune FROM référence communes";RecordSet.Open(req, chaineDeConnection, ADODB.

CursorTypeEnum.adOpenKeyset, ADODB.
LockTypeEnum.adLockOptimistic, -1);

int n = 0;

if (!(IsNull(RecordSet)))/*Ici, le compilateur indique :
-Erreur 1 La méthode surchargée correspondant le mieux à 'RecoupementDebugg.Form1.IsNull(string)' possède des arguments non valides 
-Erreur 2 Argument '1' : impossible de convertir de 'ADODB.Recordset' en 'string' 
*/{

RecordSet.MoveFirst();

Collection<
string> exclus = GetExclusCommunes;

while (!(RecordSet.EOF))/*Et ici, le compilateur indique :
--Erreur 3 'ADODB._Recordset.Fields' est un 'propriété' mais est utilisé comme un 'méthode' */{

n = n + 1;

string nom =
"";

string commune =
"";

if ((!(IsNull(RecordSet.Fields(
"nom"))))){

}

}

}

RecordSet.Close();

}

Voilà est-ce que quelqu'un serait comment dégoguer ces 3 erreurs parce-que là je bloque!
Merci d'avance
Wouter Tjon
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
MorpionMx
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
- 2 juin 2006 à 17:52
3
Merci
Si ta fonction IsNull est de type void, alors !IsNull ne peut pas marche.
Il faut que ta fonction soit de type bool.

Pour la seconde erreur, tu as appliqué la correction que je t'ai donné pour voir ?

Mx
MVP C# 

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de MorpionMx
Meilleure réponse
MorpionMx
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
- 2 juin 2006 à 18:02
3
Merci
if ((!(IsNull(RecordSet.Fields[
"nom"].ToString())))) ;

Sinon, tiens, voila ton code en utilisant ADO.Net :

<hr />

using System.Data.SqlClient;

...

public
void NettoyeReferencesCommunes()
{
   InitialiserCorrespondances();

   Collection<
string> exclus = GetExclusCommunes();

   string nom =
string.Empty;

   string commune =
string.Empty;

   string req =
"SELECT nom, commune FROM référence communes";

   using (
SqlConnection connexion =
new
SqlConnection(chaineDeConnexion))
   {

      int n = 0;

      try
      {
         connexion.Open();

         using (
SqlCommand cmd =
new
SqlCommand(req, connexion))
         {

            using (
SqlDataReader reader = cmd.ExecuteReader())
            {

               while (reader.Read())
               {
                  n += 1;

                  if (!
string.IsNullOrEmpty(reader[
"nom"].ToString()))
                  {

                     //...  
                  }
               }
            }
         }

          catch (
SqlException se)
         {

            //Gestion de l'exception
         }
      }
   }

}
<hr />
Pas sur de l'utilisation de !string.IsNullOrEmpty, sachant que je sais pas de ce que t'attendais de ton IsNull

Mx
MVP C# 

Merci MorpionMx 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de MorpionMx
MorpionMx
Messages postés
3489
Date d'inscription
lundi 16 octobre 2000
Dernière intervention
30 octobre 2008
- 2 juin 2006 à 17:40
0
Merci
Salut

Pourquoi ne pas utiliser ADO.Net plutot qu'ADODB ?

Sinon, pour ta premiere erreur ta méthode IsNull() attend un String, et pas un Recordset en parametre.
Pour la seconde erreur, Recordset.Fields["nom"] je pense.

Mx
MVP C# 
Commenter la réponse de MorpionMx
woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 2 juin 2006 à 17:49
0
Merci
Je ne connais pas la différence entre ADO. Net et ADODB, je l'ai utiliser car on m'a donné un petit exemple qui l'utilisais, donc j'ai fais de même.

Ensuite, pour la première erreur, j'ai remplacé 'RecordSet' par 'req'(ma requête), et il me génère une autre erreur.(Erreur 1 L'opérateur '!' ne peut pas être appliqué à un opérande de type 'void')

Enfin pour le 'Fields', je ne vois pas le problème, et c'est bien ça le problème;)
Woot
Commenter la réponse de woot6768
woot6768
Messages postés
397
Date d'inscription
mercredi 8 mars 2006
Dernière intervention
23 mars 2007
- 2 juin 2006 à 17:59
0
Merci
Ok d'accord j'ai compris pour le IsNull.
Mais j'ai effectivement testé ce que tu m'a donné et le compilateur me génère maintenant deux erreurs sur la ligne "


if ((!(IsNull(RecordSet.Fields[
"nom"]))))"

En l'occurence les deux erreurs sont :
-Erreur 1 La méthode surchargée correspondant le mieux à 'RecoupementDebugg.Form1.IsNull(string)' possède des arguments non valides
et
-Erreur 2 Argument '1' : impossible de convertir de 'ADODB.Field' en 'string' 
Woot
Commenter la réponse de woot6768
cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 2 juin 2006 à 19:44
0
Merci
Remarquez que pour une collection de string, on peut aussi utiliser :
System.Collections.Specialized.
StringCollection

VC# forever
=13319
Commenter la réponse de cs_Bidou

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.