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

ADO.NET Discussion :

Recherche dans une table via un ComboBox


Sujet :

ADO.NET

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Points : 64
    Points
    64
    Par défaut Recherche dans une table via un ComboBox
    Bonjour

    Je veux effectuer une recherche dans la table client via une liste déroulante.J'ai utilisé le code suivant:
    Code vb.net : 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
    Private Sub CboRechClient_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboRechClient.SelectionChangeCommitted
            Try
                Dim sqlparamNbEnreg As SqlParameter
                Dim i As Integer
                cmdClient = New SqlCommand
                cmdClient.Connection = cnnBase
                cmdClient.CommandType = CommandType.StoredProcedure
                cmdClient.CommandText = "dbo.SelectClient1"
                'Ajout du paramètre d'entrée
                cmdClient.Parameters.AddWithValue("@paramCodeClient", CboRechClient.SelectedValue)
                'Ajout du paramètre de sortie
                sqlparamNbEnreg = New SqlParameter("@paramNbEnreg", SqlDbType.Int)
                sqlparamNbEnreg.Direction = ParameterDirection.Output
                cmdClient.Parameters.Add(sqlparamNbEnreg)
                If cnnBase.State <> ConnectionState.Open Then cnnBase.Open()
                Dim drListeClients As SqlDataReader = cmdClient.ExecuteReader
                If drListeClients.Read() Then
                    For i = 0 To drListeClients.FieldCount - 1
                        Controls(IIf(i = 2, "cbo", "txt") & drListeClients.GetName(i)).Text = VNULLSTR(drListeClients.GetValue(i))
     
                    Next
                End If
                drListeClients.Close()
                cmdClient = Nothing
                drListeClients = Nothing
            Catch objException As Exception
                MsgBox(objException.Message)
            End Try
        End Sub
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function VNULLSTR(ByVal strVal As Object) As String
            If IsDBNull(strVal) Then
                VNULLSTR = ""
            Else
                VNULLSTR = strVal
            End If
        End Function
    Procédure SelectClient1
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ALTER PROCEDURE [dbo].[SelectClient1]
             (@paramProvenence varchar(50) = NULL,
              @paramCodeClient integer = NULL,
              @paramNbEnreg integer out)
    AS
    BEGIN
    SET NOCOUNT ON
              SELECT * FROM CLIENT WHERE (PROVENENCE like @paramProvenence OR
    @paramProvenence is null) and (CODECLIENT = @paramCodeClient OR @paramCodeClient is null)
    SELECT @paramNbEnreg = count(*) FROM CLIENT WHERE (PROVENENCE like
    @paramProvenence OR @paramProvenence is null) and (CODECLIENT = @paramCodeClient OR
    @paramCodeClient is null)
    END
    A l'exécution VB 2010 me donne le massage suivant:"Echec de conversion de la valeur varchar '*' en type de donnée int"
    A quoi peut être dû ce message?
    Merci de votre aide

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Je pense que vous envoyez '*' dans le paramètre de votre procédure stockée qui attend un int...

    Au passage banissez les select * de vos requètes sauf sur une sous requète de type IF EXISTS(SELECT *...)
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

Discussions similaires

  1. [Débutant] Recherche dans une table via un ComboBox
    Par Gbedjanhoungbo Jean dans le forum VB.NET
    Réponses: 0
    Dernier message: 05/12/2013, 19h07
  2. Recherche dans une table SQL via Sharepoint
    Par cleml12 dans le forum Développement Sharepoint
    Réponses: 10
    Dernier message: 24/01/2012, 12h02
  3. recherche dans une table via formulaire
    Par kbahj dans le forum VBA Access
    Réponses: 10
    Dernier message: 17/08/2011, 08h50
  4. Recherche dans une table via un formulaire
    Par Z[ee]k dans le forum Access
    Réponses: 3
    Dernier message: 05/06/2006, 11h14
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

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