teksakina
Messages postés18Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention15 avril 2009
-
24 mars 2009 à 13:02
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
28 mars 2009 à 21:12
salut tout le monde
je voudrais afficher les informations d'un personnel dans des textbox en choisissant son id à partir d'un combobox
language utilisé c'est c# et la bd est sqlserver.
et voila mon code qui ne marche pas:
SqlCommand comd2 =
new
SqlCommand(
"select id_personel,pwd,nom,prenom,cin,adresse,t‚l‚,type_personnel from personnel where id_personel='"+ @Convert .ToString ( comboBox1 .SelectedItem ) +
"'", connexion);
maladebe
Messages postés18Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention27 mars 2009 24 mars 2009 à 14:30
Salut,
Peux-tu nous dire où il y a une erreur ainsi que le message. Sans quoi c'est difficile de débugger.
Voici une liste non exhaustive de problèmes :
- Est-ce que la connexion est bien ouverte?
- Y a-t-il un enrgistrement correspondant au critère de recherche?
- Problème de gestion de valeur null?
...
Sinon, à première vue, je vois dans le sqlCommand qu'il y a deux virgules qui se suivent dans le select.
teksakina
Messages postés18Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention15 avril 2009 24 mars 2009 à 15:33
voila le message d'erreur:
System.InvalidOperationException: Tentative non valide de lecture lorsque aucune donnée n'est présente.
à System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout)
à System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i)
à homologation2.ajoutpersonel.comboBox1_SelectedIndexChanged(Object sender, EventArgs e) dans C:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2008\Projects\homologation2\homologation2\ajoutpersonel.cs:ligne 194
maladebe
Messages postés18Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention27 mars 2009 24 mars 2009 à 16:09
Attention, les indices commencent à 0.
Essaie :
textBox2.Text = rd1.GetInt32(0).ToString();
Tu peux aussi utiliser le nom de la colonne :
textBox2.Text = rd1.GetInt32("id_personel").ToString();
Remarques :
1° La méthode DataReader.Read() renvoie un booléen, alors il faut en profiter
if(rd1.Read())
{
//Remplissage des textbox
}
else
{
//Que faire s'il n'y a pas d'enregistrements???
}
2° Tester pour chaque champ s'il n'est pas null. Voir la fonction IsDbNull(param) dans la msdn car je ne connais plus la syntaxe exacte.