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 :

Recherche dans une base de données [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Par défaut Recherche dans une base de données
    Salut tout le monde
    J'ai un petit problème lorsque je veut faire une recherche dans une base de donnée. J'ai une table Histo qui est chargée dans un datagridview. Je veut faire une recherche dans ma table en fonction de ce qui est choisi dans une combobox (les valeurs de ma combo proviennent aussi d'une Table).
    Le code fonctionne quand je n'ajoute pas la clause WHERE à ma requete sql et dès que je l'ajoute j'ai ce message d'erreur :
    Microsoft Access Database Engine Aucune valeur donnée pour un ou plusieurs des paramètres requis
    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
         'création de la requête,exécution de la commande,
            sql = "SELECT * FROM Histo WHERE Produit = " & cbb_prod.Text
     
     
                'remplissage du DataAdapter,du DataSet et de la DataTable
            cmd = New OleDbCommand(sql)
            dta = New OleDbDataAdapter(cmd)
            cmd.Connection() = cnx
     
            Try
                dta.Fill(dts, "Histo") 'si j'enlève le try l'erreur apparait ici
            Catch ex As OleDb.OleDbException
                MsgBox("ERROR:" & ex.Source & " " & ex.Message, MsgBoxStyle.OkOnly)
            End Try
     
            dtt = dts.Tables("Histo")
    dgv_search.DataSource = dtt
    Merci.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Par défaut
    J'ai modifié un peu le code j'ai ajouté une requéte paramétrée à la place de l'ancienne.
    ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        cmd.CommandText = "SELECT * FROM Histo WHERE Produit ="
            cmd.Parameters.Add("Produit", System.Data.OleDb.OleDbType.VarChar)
            cmd.Parameters("Produit").Value = cbb_prod.Text
    Mais j'ai maintenant une erreur sur le cmd.CommandText :
    La référence d'objet n'est pas définie à une instance d'un objet

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,
    ton CMD ne doit pas être instancié, peut-on avoir le reste du code ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 198
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        cmd.CommandText = "SELECT * FROM Histo WHERE Produit =@Produit"
            cmd.Parameters.Addnew SqlParameter("@Produit", SqlDbType.VarChar, 5)
            cmd.Parameters("@Produit").Value = cbb_prod.Text

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Par défaut
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
     
    Public Class Form5
        'Déclarationde la variable pour la connection
        Private cnx As OleDbConnection
     
        'Déclaration de la variable pour la commande 
        Private cmd As OleDbCommand
     
     
        'Déclarationde la variable pour le dataadapter
        Private dta As OleDbDataAdapter
     
     
        'Déclaration de la variable pour le dataset
        Private dts As New DataSet
     
     
        'Déclarationde la variable pour la requête
        Private sql As String
     
     
        'Déclarationde la variable pour la datatable
        Private dtt As DataTable
     
     
        'Déclaration de la variable pour la connectionstring
        Private cnxstr As String
     
    Private Sub bt_seach2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_seach2.Click
     
    'création de la requête,exécution de la commande,
     
            cmd.CommandText = "SELECT * FROM Histo WHERE Produit ="
            cmd.Parameters.Add("Produit", System.Data.OleDb.OleDbType.VarChar)
            cmd.Parameters("Produit").Value = cbb_prod.Text
     
                'remplissage du DataAdapter,du DataSet et de la DataTable
            cmd = New OleDbCommand()
            dta = New OleDbDataAdapter(cmd)
            cmd.Connection() = cnx
     
            Try
                dta.Fill(dts, "Histo")
            Catch ex As OleDb.OleDbException
                MsgBox("ERROR:" & ex.Source & " " & ex.Message, MsgBoxStyle.OkOnly)
            End Try
     
            dtt = dts.Tables("Histo")
    dgv_search.DataSource = dtt
    End Sub

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    tu fais ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     cmd = New OleDbCommand()
    après l'avoir affecté il faut que tu le mette avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cmd = New OleDbCommand()
    cmd.CommandText = "SELECT * FROM Histo WHERE Produit =@Produit"
    cmd.Parameters.Addnew SqlParameter("@Produit", SqlDbType.VarChar, 5)
    cmd.Parameters("@Produit").Value = cbb_prod.Text

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Par défaut
    Effectivement l'erreur provenait de ça.
    J'ai un peu honte
    En tout cas merci beaucoup.

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

Discussions similaires

  1. [MySQL] Recherche dans une base de donnée [ Gros soucis ]
    Par milkasoprano dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/03/2006, 17h59
  2. problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/10/2005, 18h00
  3. Recherche dans une base de donnée
    Par genova dans le forum SQLite
    Réponses: 8
    Dernier message: 28/09/2005, 23h16
  4. problème de recherche dans une base de données
    Par bouzid_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 06h47
  5. recherche dans une base de donnée+boucle
    Par eric205 dans le forum Bases de données
    Réponses: 8
    Dernier message: 15/03/2005, 21h14

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