geii82
Messages postés25Date d'inscriptionmardi 18 avril 2006StatutMembreDernière intervention26 mai 2006
-
26 mai 2006 à 10:37
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 2008
-
26 mai 2006 à 11:46
Bonjour j'aimerai récupérer la valeur d'un enregistrement dans une table que je crée et que je rempli sans utiliser de datagrid.
Voici ma fonction :
string sConnexionLocal = @"Data Source=Test.sdf";
SqlCeConnection SqlCnx = new SqlCeConnection(sConnexionLocal);
string sSQL = "SELECT Adresse_de_pose FROM table_1";
SqlCeCommand SqlCommand = new SqlCeCommand(sSQL, SqlCnx);
SqlCnx.Open();
SqlCommand.Prepare();
SqlCommand.ExecuteNonQuery();
label1.Text = sSQL;
Je pense que la requete sql s'effectue normalement mais le problème est que je ne récupère pas la valeur de l'enregistrement dans sSQL, a la place le sSQL reçoit "SELECT Adresse_de_pose FROM table_1" lol
quelqu'un peut m'indiquer comment récupérer cete valeur svp ?
merci ;)
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 26 mai 2006 à 10:46
Salut,
Deja si tu fais un Select, tu dois plutot utiliser ExecuteScalar() ou ExecuteReader(), selon si tu attends un ou plusieurs resultats en retour (et pas ExecuteNonQuery())
Ensuite, tu ne vas pas recupere la valeur dans ta chaine sSQL, il faut que tu recuperes la valeur que ExecuteScalar() ou ExecuteReader() te retournent (un object pour ExecuteScalar() ou un DataReader pour ExecuteReader() )
geii82
Messages postés25Date d'inscriptionmardi 18 avril 2006StatutMembreDernière intervention26 mai 2006 26 mai 2006 à 11:23
Voila j'ai essayé sa donc :
public void Exemple()
{
string sConnexionLocal = @"Data Source=Test.sdf";
string sSQL = "SELECT Adresse_de_pose FROM table_1";
//Pour plusieurs valeurs
using (SqlCeConnection connection = new SqlCeConnection(sConnexionLocal))
{
try
{
connection.Open();
// Si tu n'as qu'une valeur a lire
using( SqlCeCommand cmd = connection.CreateCommand())
{
cmd.CommandText = sSQL;
Console.WriteLine(cmd.ExecuteScalar().ToString());
}
}
catch (SqlCeException se)
{
//Traitement de l'exception
}
}
Mais il ne se passe rien, je comprend pas trop ou vas etre stoqué la valeur lue. Console.WriteLine(cmd.ExecuteScalar().ToString()); cette ligne execute la commande non ?
Ou est ce que je trouve le resultat ? merci !
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 26 mai 2006 à 11:46
Comme j'ai préciser, c'est un exemple a adapter.
Console.WriteLine ecrit la valeur dans la console... donc si tu as une application Winform sous Windows CE, tu ne verras rien ;)
Remplace la ligne par label1.Text = (string)cmd.ExecuteScalar();