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

Visual Studio Discussion :

besoin d'aide pour récupérer un ID d'une table par un nom


Sujet :

Visual Studio

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO SLAM
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut besoin d'aide pour récupérer un ID d'une table par un nom
    Bonjour tous le monde,
    je suis en BTS et prépare mon projet de fin d'année qui est la gestion d'une Videotheque.
    Mais j'ai un petit souci quand je veut récupérer le L'id par le nom et prénom d'un acteur voici une image
    Nom : capture nom prenom acteur.png
Affichages : 361
Taille : 42,3 Ko
    J'ai l'erreur suivante
    Nom : erreur.PNG
Affichages : 455
Taille : 60,1 KoNom : erreur.PNG
Affichages : 455
Taille : 60,1 Ko
    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
    28
    29
    30
    31
    32
    33
     
        public static int getActeurparnom(string leNom, string lePrenom )
            {
                //initialisation de command
                MySqlCommand command = new MySqlCommand();
                //connection a la base de donnee
                command.Connection = connection;
                MySqlDataReader nbrows1;
                //requete sql 
                int Numero;
                command.CommandText = String.Format("SELECT Numero FROM acteur_realisateur WHERE Nom ='{0}' AND Prenom='{1}'" ,leNom ,lePrenom) ;
                //execution de la  variable et requet
                nbrows1 = command.ExecuteReader();
                nbrows1.Read();
               //initialisation de la variable
              //lecture des lignes dans la base de donnee
             //return 0 si la ligne est vide
                if (nbrows1.IsDBNull(0))
                {
                    Numero = 0;
                }
                //sinon va chercher la valeur 
                else
                {
                    Numero = nbrows1.GetInt32(0);
                }
                //return la valeur
                return Numero;
                //fermeture de la lecture des lignes
                nbrows1.Close();
             //fermeture de la base de donnee
                connection.Close();
            }
    si vous pouviez m'aider ca serai d'une grande aide.
    Cordialement

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    on ne concatène pas des strings dans une requete, c'est une faille de sécurité grave (voir injection sql), et dans le cas d'un apostrophe contenu dans le string ca plantera
    on ne concatène pas des dates et des décimaux non plus car les formats peuvent changer (ordre pour la date, séparateur de décimal pour les décimaux)
    pour ca il existe les DbParameters, qui permettent de passer les valeurs en tant que variable dans la requete ("... where nom = @nom ...")
    les puristes utilisent toujours des DbParameterrs

    la méthode Read retourne un booléen, s'il vaut false c'est qu'il n'y aucune ligne à lire

    mettre des strings dans un combobox pour ensuite rechercher l'id ce n'est pas top
    .net est objet, dans un combobox au lieu de mettre des string on peut mettre de classes
    si tu as une classe Acteur avec Id, Nom et Prenom tu peux faire en sorte d'afficher nom + " " + prenom (en surchargeant ToString), et en castant le selecteditem tu peux récupérer l'id
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : BTS SIO SLAM
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut voici la combox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Controleur.LesActeurs = Form1.monControleur.chargerlesacteurs();
                foreach (Acteur em in Controleur.LesActeurs)
                {
     
                  Acteurcombobox.Items.Add(em.GetPrenomacteur()+" "+(em.GetNomacteurs())); 
     
                }

Discussions similaires

  1. Besoin d'aide pour récupérer le contenu d'une console
    Par Qherique dans le forum Général Java
    Réponses: 0
    Dernier message: 10/01/2019, 20h22
  2. Réponses: 7
    Dernier message: 12/06/2007, 14h59
  3. Besoin d' Aide pour Redimensionnement des element dans une fenetre
    Par kry55 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 11/12/2006, 12h05
  4. Réponses: 2
    Dernier message: 16/06/2006, 15h47
  5. Réponses: 2
    Dernier message: 20/09/2005, 15h10

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