IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

récupérer résultat d'une requête select de type int


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    étudiant
    Inscrit en
    Septembre 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 342
    Points : 124
    Points
    124
    Par défaut récupérer résultat d'une requête select de type int
    Bonjour,
    j'ai un textBox dont le continu est de type int je veut comparer la valeur entré par l'utilisateur dans ce champ avec celle dans la base de données(révcupéré par la requête select),en fait je n'arrive pas à faire ceci,il me dit une erreur de syntaxe
    voici mon code si vous pouvez m'aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void button2_Click(object sender, EventArgs e)
            {
                    SqlConnection connection1 = new SqlConnection(connectionString);
                    connection1.Open();
                    String reqt1="select numero_cpte from compte where numero_cpte="+textBox1.Text+";";
                    SqlCommand sql1 = new SqlCommand(reqt1, connection1);
                    int d = int.Parse(textBox1.Text);
                    int dd = int.Parse(reqt1); //j'ai l'erreur ici =>erreur de syntaxe
                    if(d == dd) { 
                    int o1 = sql1.ExecuteNonQuery();
                    MessageBox.Show(o1 + "Ce numéro de compte existe déjà!!");
                    connection1.Close();
     
                    }
    }
    merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Effectivement il doit avoir du mal a parser : "select numero_cpte from compte where numero_cpte=Abc;"

    Car si je traduis ta ligne tu as écrit cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int dd = int.Parse("select numero_cpte from compte where numero_cpte=abc;");
    C'est pas vraiment un "int" !

    Sinon la définition de SqlCommand.ExecuteNonQuery :
    Exécute une instruction Transact-SQL sur la connexion et retourne le nombre de lignes affectées.

    Je ne crois pas que c'est que tu veux faire...

    Il faut plutôt regarder du coté : SqlCommand.ExecuteReader

    Ta requête ne sera exécutée sur ta Bdd qu'au moment ou tu appellera une SqlCommand.Excute... C'est seulement après cela que tu pourra récupérer ta valeur !

  3. #3
    Membre régulier
    Homme Profil pro
    étudiant
    Inscrit en
    Septembre 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 342
    Points : 124
    Points
    124
    Par défaut
    bonjour katkiller ce que je veut faire est de comparer la valeur que le client tape sur ce TextBox1 s'il se trouve dans la base de données de table compte,si c'est le cas un MessageBow s'affiche.
    est ce que vous pouvez mexpliquer un peu l'utilisation de SqlDataReader dans mon cas et merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    ADO.NET est un gros morceau !

    Voici un tuto sur développez : ADO.NET : les objets Connection, Command et Datareader en C#

    Voici du code non testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                SqlConnection connection1 = new SqlConnection(connectionString);
                connection1.Open();
                String reqt1 = "select numero_cpte from compte where numero_cpte=" + textBox1.Text + ";";
                SqlCommand sql1 = new SqlCommand(reqt1, connection1);
                SqlDataReader reader = sql1.ExecuteReader();
                int valeurTextBox = int.Parse(textBox1.Text);
                int valeurBdd = reader.GetInt32(0);
                if (valeurTextBox == valeurBdd)
                {
                    MessageBox.Show(valeurBdd + "Ce numéro de compte existe déjà!!");
                }
                connection1.Close();
    Sinon petit conseil : Il est préférable d'utiliser les requêtes paramétrées pour éviter l'injection SQL

  5. #5
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Bonjour

    en reprenant le code de katkiller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       SqlConnection connection1 = new SqlConnection(connectionString);
                connection1.Open();
                String reqt1 = "select numero_cpte from compte where numero_cpte=" + Convert.ToInt32(textBox1.Text) + ";"; // Car apparemment tu veux de l'int
                SqlCommand sql1 = new SqlCommand(reqt1, connection1);
                SqlDataReader reader = sql1.ExecuteReader();
     
                while (reader.Read())
                {
                      MessageBox.Show("Ce numéro de compte existe déjà!!"); // la requête vérifie déjà si la saisie dans textbox existe dans la table 
                 }
                 reader.Close();
     
                 connection1.Close();
    avec requête paramétrée c'est mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            String reqt1 = "select numero_cpte from compte where numero_cpte=" + @text + ";"; // Car apparemment tu veux de l'int
                SqlCommand sql1 = new SqlCommand(reqt1, connection1);
                sql1.Parameters.Add("@text", SqlDbType.Int).Value = Convert.ToInt32(textBox1.Text) ;
                SqlDataReader reader = sql1.ExecuteReader();

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Le paramètre doit être intégré dans ta requête....

    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            String reqt1 = "select numero_cpte from compte where numero_cpte=@text";
                SqlCommand sql1 = new SqlCommand(reqt1, connection1);
                sql1.Parameters.Add("@text", SqlDbType.Int).Value = Convert.ToInt32(textBox1.Text) ;
                SqlDataReader reader = sql1.ExecuteReader();

  7. #7
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    je me disais bien qu'il y avait un truc qui n'allait pas

Discussions similaires

  1. récupérer le résultat d'une requête select en c#
    Par chemsoun dans le forum Unity
    Réponses: 1
    Dernier message: 12/04/2015, 10h06
  2. Réponses: 12
    Dernier message: 26/01/2015, 11h04
  3. problème avec les résultats d'une requête select top1
    Par kariiim dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/03/2007, 15h05
  4. Récupérer résultat d'une requête
    Par nerila dans le forum Bases de données
    Réponses: 10
    Dernier message: 02/03/2007, 12h53
  5. [VBA-E] Récupérer résultat d'une requête
    Par ragnarök dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2006, 16h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo