begin process at 2008 09 06 09:10:25
1 237 663 membres
60 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : cast spécifié non valide [ Base de données / Access ] (gabs77)

cast spécifié non valide le 13/12/2007 18:03:53

gabs77
bonjour,
je débute en C# et j'ai rencontré un problème auquel je ne parviens à comprendre quelle est-elle.
voici le code ci dessous et le message est le suivant : "le cast spécifié n'est pas valide"
 
public void ChargerListBox(string strRequete)
        {
        try
            {
                OleDbConnection oConnection = new OleDbConnection(strConnexion);
                OleDbCommand oCommand = new OleDbCommand(strRequete, oConnection);
                oConnection.Open();
                OleDbDataReader oReader = oCommand.ExecuteReader();
                do
                {
                    LB.Items.Clear();
                    //        MessageBox.Show(oReader.GetName(0));
                    while (oReader.Read())
                    {
                        LB.Items.Add(oReader.GetString(0));
                    }
                }
               while (oReader.NextResult());
                oReader.Close();
                oConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("L'erreur suivante a été rencontrée :" + ex.Message);
            }
        }

Re : cast spécifié non valide le 13/12/2007 18:52:49

Bidou
(Admin CS)
Réponse acceptée !
Salut,

Voire la documentation en ligne:
[ Lien ]

"No conversions are performed; therefore the data retrieved must already be a string.
Call IsDBNull to look for null values before calling this method."


-My Blog-

Re : cast spécifié non valide le 13/12/2007 23:50:31

TheSaib
(Admin CS)
D'ailleurs au passage tu ne fermes pas tes connections et ne disposent pas tes objets, en cas d'echec ou pas.
Afin de garantir cette opération instancies tes objets connections et commande de la manière sivante :

using( OleDbConnection oConnection = new OleDbConnection(strConnexion))
{
                using (OleDbCommand oCommand = new OleDbCommand(strRequete, oConnection))
               {
               }
}



::|The S@ib|::
MVP C#.NET

Re : cast spécifié non valide le 14/12/2007 11:35:19

gabs77

Merci Bidou

en effet j'avais des valeurs null ce qui me posait problème, ainsi j'ai pu répondre au problème

TheSaib, je prends en notes tes remarques afin d'améliorer mon code !!


Re : cast spécifié non valide le 14/12/2007 11:40:19

gabs77
En revache je ne parvien spas à afficher dans des labels certains champs de ma base de données comme les champs numérique de ma base de données ACCESS pourtant il ne sont pas vide

Re : cast spécifié non valide le 14/12/2007 18:53:35

TheSaib
(Admin CS)
Une exception ... une erreur ....

::|The S@ib|::
MVP C#.NET

Re : cast spécifié non valide le 15/12/2007 09:44:35

gabs77
il me m'était une erreur de cast aussi mais j'ai compris mon erreur
 je faisai
label1.Text = oReader.GetString(0)
or il fallait faire ainsi
label1.Text = string.Format( "{0}" , oReader.GetInt16(0))


Par contre, j'ai encore une autre question :
comment est ce que l'on peut faire un switch avec un equals() ?
car je veux faire une fonction qui a comme paramètre une List<Label> et une requeteSQL
et cette fonction affichera respectivement les champs dans les labels correspondants
champ1 => label1
champ2 => label2

donc j'ai fait le script suivant :

do 
   {
   while(oReader.Read())
      {
      int i =0;
      while (oReader.FieldCount() > i)
         {
         // je veux faire quelquechose qui ressemble à cela
          switch (oReader.GetFieldType.Equals(???) )
            {
            case (string) :   Tlabel[i].Text = oReader.GetString(i);
            case (Int16) :   Tlabel[i].Text = string.Format("{0}",oReader.GetInt16(i));
            ....
            default : 
            }
         i++;
         }
      }
   }
while(oReader.NextResult());

Re : cast spécifié non valide le 15/12/2007 12:23:42

Bidou
(Admin CS)
Réponse acceptée !
GetValue qui retourne un object ne pourrait-il pas faire l'affaire ?



-My Blog-

Re : cast spécifié non valide le 15/12/2007 13:19:16

gabs77
Effectiement Bidou, c'est bien plus simple ainsi !! Je ne sai pourquoi je sui parti compliqué


Classé sous : valide, oconnection, cast, spécifié, oreader

Participer à cet échange

Livres en rapport

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Boutique

Boutique de goodies CodeS-SourceS