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

VB.NET Discussion :

AJout controle d'une BDD


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Points : 39
    Points
    39
    Par défaut AJout controle d'une BDD
    Hello, j'ai encore un autre soucis
    Je créé une application VB, qui accède à une base de donnée access.
    Je souhaite effectuer un contrôle sur une combobox (dans laquelle je rentre un champs destiné à une cellule d'une table) qui vérifiait, si le mot rentré, n'est pas déjà existant dans la table. et le cas échéant, afficher un message d'erreur.
    j'ai donc créé une requette (verif3) qui est un simple SELECT me renvoyant la colonne que je souhaite vérifier) et je compare cette requete à ma combobox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Me.Trec_ingTableAdapter.verif3() = ComboBox1.Text Then
                MessageBox.Show("Ingredient deja present")
            Else
                Me.Trec_ingTableAdapter.recing(Me.ComboBox1.Text, Me.NomRecetteTextBox.Text, Me.NumericUpDown1.Text)
                'Refresh des données de la table
                Me.Trec_ingTableAdapter.Fill(Me.BDDRecIngDataSet.Trec_ing)
            End If
    le probleme, est que la comparaison s'effectue uniquement avec le 1 ier champ ou cellule trouvé...
    je ne voie pas comment resoudre ça, ma methode est "à l'arrache".
    si vous avez des solutions, ou une methode plus simple, je suis preneur.
    merci bonne journée

    Edit :
    J'ai aussi pensé a créé une requete de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where NomIngredient = "(ma combobox")
    et afficher un message d'erreur lorsque cette requete me renvoie un résultat. ma question est donc, que renvoie comme message une requete vide ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    S'il y a plusieurs enregistrements résultant de la requête, utilise un datareader et boucle sur chaques lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    dim CMD as obdc.command
    dim DRDR as odbc.datareader
    'créer la requête
    CMD.commandtext = "Requête de sélection"
    drdr = CMD.executereader
    while DRDR.read
        If DRDR.getstring(Numéro,nom de la colonne) = ComboBox1.Text Then
                MessageBox.Show("Ingredient deja present")
        Else
                Me.Trec_ingTableAdapter.recing(Me.ComboBox1.Text, Me.NomRecetteTextBox.Text, Me.NumericUpDown1.Text)
                'Refresh des données de la table
                Me.Trec_ingTableAdapter.Fill(Me.BDDRecIngDataSet.Trec_ing)
        End If
    end while
    Il faut vérifier si le reader retourne des lignes(.hasrows)
    Bon boulot Jean

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Points : 39
    Points
    39
    Par défaut
    Merci de ta reponce.

    Je vien de tester, mais cela ne fonctionne pas :
    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 Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim CMD As Odbc.OdbcCommand
            Dim DRDR As Odbc.OdbcDataReader
     
            CMD.CommandText = "SELECT NomIngredient FROM TRec_Ing"
            DRDR = CMD.ExecuteReader
            While DRDR.Read
                If DRDR.GetString(1) = ComboBox1.Text Then
                    MessageBox.Show("Ingredient deja present")
                Else
                    Me.Trec_ingTableAdapter.recing(Me.ComboBox1.Text, Me.NomRecetteTextBox.Text, Me.NumericUpDown1.Text)
                    'Refresh des données de la table
                    Me.Trec_ingTableAdapter.Fill(Me.BDDRecIngDataSet.Trec_ing)
                End If
            End While
    j'ai l'avertissement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Avertissement	1	La variable 'CMD' est utilisée avant qu'une valeur ne lui ait été assignée. Une exception de référence null peut se produire au moment de l'exécution.	H:\Bac a sable\GestRecette\NewGestionRecette\GestionaireRecette\Ajout_Recette.vb	109	9	GestionaireRecette
    et lorsque je lance l'application l'erreur : La référence d'objet n'est pas définie à une instance d'un objet. au niveau de la ligne CMD.CommandText = " "...

    Si quelqu'un peut m'aider, merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/05/2014, 12h49
  2. [MySQL] Valeur qui ne s'ajoute pas dans une BDD
    Par Luverger dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 09/02/2007, 11h04
  3. ajouter le contenu d'un dossier ftp à une bdd
    Par lioudow dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/11/2005, 19h46
  4. ajouter des control dans une onglet de sstab sous VB6
    Par aymane_farissi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/09/2005, 13h44
  5. Réponses: 1
    Dernier message: 09/08/2005, 12h09

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