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 :

Problème de conversion [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Par défaut Problème de conversion
    Bonjour à tous!

    Je viens avec (encore) un problème
    J'ai une bdd nommée Clients et une bdd Reservation. J'ai un dataGridView1 qui contient le tableau des reservations avec l'id_client.

    Mon but est de récupérer le nom du client dans une textBox1 mais lorsque je lance, au niveau de mon while (reader.Read()) j'ai cette erreur :
    Conversion failed when converting the varchar value 'System.Windows.Forms.DataGridViexSelectedCellCollection' to data type int.
    Une solution?

    Voici le code:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     try
                {
     
                    string connexionSQL = [Don't worry, elle est bonne mais je ne la mets pas];
                    string requete = "Select nom from Clients where id_client= '" + dataGridView1.SelectedCells.ToString() + "'";
                    SqlConnection maConnexionSQLsrv = new SqlConnection(connexionSQL);
                    SqlCommand cmd = new SqlCommand(requete, maConnexionSQLsrv);
                    maConnexionSQLsrv.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
     
                    string nom = "";
                    int typ = 0;
                    while (reader.Read())
                    {
                        typ = (int)reader[1];
                        nom = (string)reader[2];
     
                    }
                    if (int.Parse(dataGridView1.SelectedCells.ToString()) == typ)
                    {
                        textBox1.Text = nom;
                    }
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }

    Merci bien!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    Citation Envoyé par Alice23 Voir le message
    string requete = "Select nom from Clients where id_client= '" + dataGridView1.SelectedCells.ToString() + "'";
    le champ id_client de la table clients est un integer ou varchar ?
    en effet, s'il est integer, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string requete = "Select nom from Clients where id_client= " + Convert.ToInt32(dataGridView1.SelectedCells.ToString());

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Le mieux serait d'ailleurs de passer par une requête paramétrée...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2009
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 229
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Le mieux serait d'ailleurs de passer par une requête paramétrée...
    Bien vu

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Par défaut
    Bonjour,

    Ce code me semble incorrect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string requete = "Select nom from Clients where id_client= " + Convert.ToInt32(dataGridView1.SelectedCells.ToString());
    dataGridView1.SelectedCells renvoie une collection
    dataGridView1.SelectedCells[0].Value renvoie la valeur de la 1ere cellule de la collection

    Ce n'est pas plutôt dataGridView1.SelectedCells[0].Value.ToString() que tu dois mettre ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Par défaut
    Le message te dis d'ailleurs que tu essaies de convertir la chaine de caractère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "System.Windows.Forms.DataGridViewSelectedCellCollection"
    en une variable de type INT.

    Donc ta requête actuelle est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string requete = "Select nom from Clients where id_client= 'System.Windows.Forms.DataGridViewSelectedCellCollection'"
    ce qui est incohérent.

    Tu devrais essayer ça (si id_client est bien un INT dans la base de données):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string idClient = dataGridView1.SelectedCells[0].Value.ToString();
    string requete = "Select nom from Clients where id_client= " + idClient;
    En vérifiant que la variable idClient est bien la valeur attendue en mettant un Breakpoint dans le code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de conversion de dimension dans BUSINESS OBJECT
    Par greatmaster1971 dans le forum Deski
    Réponses: 4
    Dernier message: 28/04/2014, 13h15
  2. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  3. Problème de conversion 3DS->.X
    Par JBernn dans le forum DirectX
    Réponses: 5
    Dernier message: 08/04/2004, 19h08
  4. Problème de conversion unicode
    Par djmalo dans le forum C
    Réponses: 5
    Dernier message: 09/03/2004, 11h48
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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