1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2017
    Messages : 18
    Points : 8
    Points
    8

    Par défaut Conversion de string en int

    Bonjour,

    j'ai eu un problème dans mon code ci-dessous l'erreur est de type "Argument 1: conversion impossible de string en int.

    Voila 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
    Connexion con = new Connexion();
                con.dataGet("select * From Doc where Satus = 'Actif'");            
                SqlDataReader MyReader;
                try
                {
                    MyReader = con.cmd.ExecuteReader();
                    while (MyReader.Read())
                    {
                        string SNom = MyReader.GetString("Nom");
                        comboBox2.Items.Add(SNom);
                    }
                }
                catch(Exception ex)
                {
    
                }
    l'erreur est au niveau de string SNom précisément c'est le Nom qui est souligné.
    Pourriez vous m'aider?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net et Delphi
    Inscrit en
    juillet 2002
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .Net et Delphi
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2002
    Messages : 584
    Points : 1 324
    Points
    1 324

    Par défaut

    Bonjour,

    Le message est normal. La méthode SqlDataReader.GetString attend un integer en paramètre. Il s'agit du numéro de la colonne (base zéro) : Msdn. Il n'y a pas d'overload de cette méthode permettant de passer une string en paramètre.

  3. #3
    Rédacteur/Modérateur
    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : juillet 2016
    Messages : 925
    Points : 3 223
    Points
    3 223
    Billets dans le blog
    5

    Par défaut

    Bonjour,

    Comme dit par ebastien, il n'y a pas de surcharge qui prenne le nom de la colonne. Il faut donc le faire en deux étapes : récupérer le numéro de la colonne correspondante, et ensuite récupérer la valeur.

    En rouge, mes modifications :
    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
    using(Connexion con = new Connexion()) 
    {
                con.dataGet("select * From Doc where Satus = 'Actif'");            
                SqlDataReader MyReader;
                try
                {
                    using(MyReader = con.cmd.ExecuteReader())
                    {
                        int colNom = MyReader.GetOrdinal("Nom");
                        while (MyReader.Read())
                        {
                            string SNom = MyReader.GetString(colNom);
                            comboBox2.Items.Add(SNom);
                        }
                    }
                }
                catch(Exception ex)
                {
    
                }
    }
    A noter que j'ai aussi libéré les ressources qui ont besoin d'être libérées (la connexion et le reader), via l'usage du mot clé using
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2017
    Messages : 18
    Points : 8
    Points
    8

    Par défaut

    Merci pour vos message.
    dans mon cas je souhaite afficher toutes les informations de mon table ci dessous dans le combobox nom. En sachant que la colonne Nom_Famille est la troisième colonnes. En comptant normalement colonne 0 correspond à la Civilité, colonne 1 correspond au Matricule et 2 correspond au Nom_Famille voir image. Nom : Info.png
Affichages : 18
Taille : 11,0 Ko
    J'ai fait ça
    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
    void Combobox()
            {
                Connexion con = new Connexion();
                con.dataGet("select * From Doc where Satus = 'Actif'");            
                SqlDataReader MyReader;
                try
                {
                    MyReader = con.cmd.ExecuteReader();
                    int colNom = MyReader.GetOrdinal("Nom_Famille");
                    while (MyReader.Read())
                    {
                        string SNom = MyReader.GetString(2);
                        comboBox2.Items.Add(SNom);
                    }
                }
                catch(Exception ex)
                {
     
                }
            }
    J'ai ajouté dans mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Accès()
            {
                InitializeComponent();
                Combobox();
            }
    Mais rien ne s'affiche dans mon combobox.

  5. #5
    Rédacteur/Modérateur
    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : juillet 2016
    Messages : 925
    Points : 3 223
    Points
    3 223
    Billets dans le blog
    5

    Par défaut

    Je serais toi, je supprimerai le try/catch dans un premier temps. Car pour l'instant, s'il y a une exception, comme le catch attrape tout mais ne fait rien, tu ne vois rien ! Et je suis prêt à parier qu'il y a une exception qui se produit à un moment ou à un autre...
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2017
    Messages : 18
    Points : 8
    Points
    8

    Par défaut

    en élevant le try et catch il y a une erreur de type "Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet." l'erreur est au niveau de MyReader = con.cmd.ExecuteReader()

Discussions similaires

  1. conversion base string hexa-> int
    Par koda29 dans le forum C
    Réponses: 7
    Dernier message: 14/05/2010, 17h07
  2. Réponses: 2
    Dernier message: 23/02/2009, 11h04
  3. Conversion de String en Int
    Par Gregory.M dans le forum Windows Forms
    Réponses: 12
    Dernier message: 06/01/2009, 11h57
  4. Conversion de String vers int
    Par CyberSlan dans le forum C++
    Réponses: 21
    Dernier message: 30/05/2008, 08h39
  5. [C++] Conversion de String en int
    Par poporiding dans le forum Framework .NET
    Réponses: 2
    Dernier message: 02/01/2006, 16h43

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