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

  1. #1
    Membre habitué
    Utiliser une procédure stockée comme source d'un DataGridView
    Bonjour,

    Peu expérimenté en VB.net je me heurte à un problème certainement élémentaire qui en fera certainement sourire plus d’un.

    Contexte :
    VS2008 + SQL Server 2008-R2

    Objectif :
    Associer un DataGridView à une procédure stockée paramétrée.

    Ce que j’ai fait (après beaucoup de tatonnements) :
    • Créé un projet WindowsForm
    • Créé une Source de données comportant :
    o Un DataTable fortement typé construit de toute pièce pour fournir les noms et types des colonnes renvoyées par la procédure stockée
    o Un TableAdapter comportant ma procédure comme méthode Fill mais que je ne parviens pas à associer à mon DataTable (c’est là le problème)
    • Ajouté un contrôle DataGridView à partir de l’objet DataTable de ma source de données (le TableAdapter ne permettant pas l’association avec un contrôle)

    J’ai donc un DataGridView dont la source des données est un DataTable de mon projet mais je ne sais pas comment remplir ce datatable si ce n’est en créant un DataReader et en ajoutant les lignes de résultat au DataGridView – mais ce n’est pas le but.

    J’ai voulu ajouter dans le code l’exécution de la méthode fill appliquée à l’objet QueryTableAdapter représentant ma procédure stockée mais je ne peux pas désigner mon DataTable comme cible du remplissage.

    J’ai parcouru de nombreux didacticiels sur MSDN et sur Developpez.com mais à chaque fois j’arrive à une situation où l’IDE ne me propose pas la commande ou l’option indiquée dans le didacticiel.

    Je cherche à retrouver dans VB.net la facilité que je connaissais dans VB6 pour associer un contrôle à une source de données via l’IDE ; mais peut-être que ce n’est plus possible.

    Merci pour votre aide

  2. #2
    Membre régulier
    j'ai pratiquement le même problème. voilà mon code

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim cmd As New SqlCommand("BalanceDesStocks", sqlCONN)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.AddWithValue("@DateInventaire", CStr(Date.Today))
            cmd.Parameters.AddWithValue("@DerniereDateInventaire", DerniereDateInventaire(Date.Today))
            cmd.Parameters.AddWithValue("@TypeStock", "")
            cmd.Parameters.AddWithValue("@Chaine", bChaine)
            cmd.Parameters.AddWithValue("@ChaineFiltre", "")
     
            Dim da As New SqlDataAdapter(cmd)
            Dim SqlDset As New DataSet
            da.Fill(SqlDset, "BalanceDesStocks")
            bTab = SqlDset.Tables("BalanceDesStocks")
            datagridview.DataSource = bTab

    Ensuite, le datagridview n'affiche qu'une seule colonne de 3 lignes en lieu et place de 10 colonnes et 1700 lignes.
    Je tiens à préciser que ma procédure stockée BalanceDesStocks marche parfaitement.
    Qu'est ce qui ne vas pas dans mon code?

  3. #3
    Membre du Club
    Bonjour
    Si ce là n'est trop tard et si ce là ne te gène pas, envoies le code de ta procédure stockée.