cs_baby85
Messages postés79Date d'inscriptionmercredi 22 octobre 2008StatutMembreDernière intervention17 juin 2009
-
1 avril 2009 à 20:21
aminescm
Messages postés7Date d'inscriptionmercredi 19 octobre 2011StatutMembreDernière intervention 9 mai 2012
-
3 mars 2012 à 02:00
salut,
j ai un probleme lorsque je veux recuperer le resultat d'une requete select en c# mais quand je veux utiliser le resultat de select dans une autre methode il affiche une message d'erreur
j ai fais comme ca
string nz = equi.zoneChangement();//cette methode retourne le resultat d'une select de type string
double dsz = equi.selection(nz);//cette methode a pour variable d'entrée string
il affiche une message d'erreur
Le format de la chaîne d'entrée est incorrect au niveau de cette methde selection sachant lorsque j 'execute la methde avec une chaine de caratere il affiche le resultat vrai
public string zoneChangement()
{ string requete1 = "select distinct(Num) from table where Num !='"+0+"' ";
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand oCommand = new SqlCommand(requete1, connection);
connection.Open();
int h = 0;
SqlDataReader reader1 = oCommand.ExecuteReader();
while (reader1.Read())
{
string result1 = reader1["Num"].ToString();
string res1_doub = Convert.ToString(result1);
tabnum[h] = res1_doub;
h++;
}
return(tabnum[3]);
}
le type de colonne dans la base des données est char[10]
Merci d'avance
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 1 avril 2009 à 22:25
je comprend pas trop ou tu veux en venir ici :
string result1 = reader1["Num"].ToString();
string res1_doub = Convert.ToString(result1);
tabnum[h] = res1_doub;
je vois pas la déclaration de tabnum;
que ce passe t'il si la requette renvoi moins de 4 éléments?
Pourquoi demander touts les résultat puis n'en renvoyer qu'un seul, la requette devrait te sortir dirrectement le quatriéme si c'est bien ce que tu veux, imagine que la table contienne 3 000 000 de "Num" !!!
As-tu vérifier que la valeur dans nz est bien conforme a ton attenteaprés l'appel à la fonction zoneChangement()?
Est tu certain de ta requette ?
"select distinct(Num) from table where Num !='"+0+"' "
là tu additionne des choux et des carote (string et int) au pire :
"select distinct(Num) from table where Num !='"+(0).ToString()+"' "
le 0 étant codé de maniére fixe pouquoi ne pas écrire :
"select distinct(Num) from table where Num !='0' "
ou le cas échéant, utilise une requette paramétré :
"select distinct(Num) from table where Num [mailto:!=@p1 !=@p1] "
Est tu bien sur de l'utilisation de != pour "différent" de ne serais pas plutot <> ?
Utilise des clauses using pour proprement détacher les resources
ceci est déjà un peut plus propre (et pas sufisant hein...) :
public string zoneChangement()
{
string requete1 = "select distinct(Num) from table where Num <>'0' ";
using(SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using(SqlCommand oCommand = new SqlCommand(requete1, connection))
{
int h = 0;
using(SqlDataReader reader1 = oCommand.ExecuteReader())
{
while (reader1.Read())
{
if(h==3)return reader1.GetString(0);
h++;
}
throw new Exception("élément inexistant !!!"); // pour débuguer
//return string.Empty; // ou null comme tu veux
}
}
}
}
omyoussef
Messages postés25Date d'inscriptionmardi 6 juillet 2010StatutMembreDernière intervention18 mars 20131 8 juil. 2011 à 12:17
Salut,
j'ai un problème lorsque je veux afficher le résultat d'une requête sur une listbox, lors d'un clic sur un bouton.
Ma requête doit fournir les champs d'une table ayant une clé primaire égale à la valeur contenue dans un textbox.
Voici mon code;
private void button4_Click(object sender, EventArgs e)
{ SqlConnection myConnection = new SqlConnection (
"server=SWEET-B0260DB61\\SQLEXPRESS;" +
"Trusted_connection=yes;"+
"database=gestion production;"+
"Connection timeout=100");
SqlDataReader reader = null;
try
{
myConnection.Open();
SqlCommand command = new SqlCommand("SELECT code_MP,cout_unité FROM m_p where (code_article like @cod_ar) )", myConnection);
command.Connection = myConnection;