gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008
-
13 déc. 2007 à 18:03
chakoor
Messages postés1Date d'inscriptionjeudi 20 janvier 2011StatutMembreDernière intervention17 mars 2011
-
17 mars 2011 à 11:30
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);
}
}
A voir également:
Le cast spécifié n'est pas valide
Errordomain=nscocoaerrordomain&errormessage=impossible de trouver le raccourci spécifié.&errorcode=4 - Meilleures réponses
"No conversions are performed; therefore the data retrieved must already be a string.
Call IsDBNull to look for null values before calling this method."
TheSaib
Messages postés2367Date d'inscriptionmardi 17 avril 2001StatutMembreDernière intervention26 décembre 200723 13 déc. 2007 à 23:50
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))
{
}
}
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 14 déc. 2007 à 11:40
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
gabs77
Messages postés379Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention 8 octobre 2008 15 déc. 2007 à 09:44
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());