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

Windows Forms Discussion :

DataGridView lié à une procédure stockée : Pas de résultats


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 7
    Par défaut DataGridView lié à une procédure stockée : Pas de résultats
    Bonjour,

    Je souhaite lier des DataGridView à des procédures stockées.
    J'ai par exemple une procédure stockée "sp_sel_clients" qui va me sélectionné tout les clients actif.
    Lorsque j'exécute ma procédure stockée via SQL Server 2005, j'ai en résultat le tableau comprenant les occurrences de ma requête.

    Je créer alors un DataGridView auquel j'associe la procédure stockée "sp_sel_clients". Il me créer alors automatiquement un DataSet ainsi qu'un DataTableAdapter. Et comme par magie, j'apperçoi dans mon DataGridView le même tableau que j'obtenais en exécutant la procédure stockée dans SQL Manager. Bref, c'est ça que je souhaite !

    Sauf que voilà, j'ai aussi une autre procédure stockée qui est légèrement plus complexe : "sp_sel_paramGrille". En gros, j'y ai mis un curseur, je lit une table ligne par ligne, chaque valeurs de la ligne je les traites, les concatènes, etc. pour au final mettre les valeurs "modifiés" dans une table temporaire.
    Bref, au final, à la fin de ma sporc je fait un simple SELECT * FROM #tab_Temp. Lorsque j'exécute ça dans SQL Manager, pas de soucis, il me retourne bien correctement la table temporaire...
    Mais le soucis est après ! En effet je souhaite aussi y mettre un DataGridView !
    Alors je fais la même manipulation que pour les clients, sauf que là j'ai juste le droit à un DataSet (pas de TableAdapter), et mon dataGridView est vide...

    Pourquoi est ce que je n'arrive pas à lier mon DataGridView à ma procédure stockée, alors que j'y arrive avec celle des clients ? Et chose encore plus étrange pour moi, pourquoi est ce que la procédure me retourne ce que je souhaite lorsque je l'éxecute via SQL Manager, mais pas via ma DataGridView ?
    Je suis un peu perdu, et je vous remercie beaucoup par avance !

    ZeTS

    PS : Je suis sous SQL Server 2005 et je développe en C#.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 50
    Par défaut
    bonjour je crois que le problème se produit à cause de la table temporaire que tu as déclarer dans votre procédure.

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Je travaille rarement avec des procédures stockées pour la sélection de donnée (j'utilise plutôt des vues pour la lecture et des procédures stockées pour l'insertion et la modification, si je ne travaille pas directement sur la table.)

    Il est néanmoins probable que VisualStudio n'arrive pas à interpreter votre procédure stockée et par conséquent à déterminer la structure fortement typée qui en découle(Peut être qu'en faisant un select [nom de colonne] à la fin il se débrouille mieux, sans garantie).

    Mais rassurez-vous rien n'est perdu. Dans le pire des cas (certains vieux routard diront le meilleur) il suffit de définir vous même une datatable (ou une list de buisness object) avec les colonnes renvoyée par votre procédure stockée.
    Puis de coder une fonction de remplissage à l'aide des objets ADO.NET d'un niveau plus bas que les tableadapter, c'est à dire une connection, une commande (avec ces parameters) et un datareader pour lire les résultats.
    Vu que vous utilisez SQL Server il faut utiliser respectivement les objets suivant: SqlConnection, SqlCommand, SqlParameter, SqlDataReader

    http://msdn.microsoft.com/en-us/library/9kcbe65k.aspx

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 7
    Par défaut
    Merci de vos réponses,

    Je vais étudier tout ça, et sûrement faire la solution de sinople.

    Merci encore !

  5. #5
    HAY
    HAY est déconnecté
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Par défaut
    J'ai trouvé une solution ici:
    http://social.msdn.microsoft.com/for...-b457ad9c0a2c/
    et ici
    http://objectmix.com/ado-dao-rdo-rds...es-temp-t.html

    Il faut ajouter dans la procédure stockée (juste après le BEGIN) le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF 1=0 BEGIN
         SET FMTONLY OFF
    END
    Grâce a ce code non exécuté, la table temporaire n'est plus un problème pour Visual Studio !!!

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/03/2014, 17h44
  2. Problème de récup de résultats d'une procédure stockée
    Par an_merle dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 12/01/2006, 11h08
  3. [SQL Server]Recupération du résultat d'une procédure stockée
    Par navis84 dans le forum Bases de données
    Réponses: 8
    Dernier message: 04/04/2005, 21h53
  4. Debuger une procédure stockée en mode pas à pas
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/12/2004, 11h59
  5. [C#] Récupérer le résultat d'une procédure stockée
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/10/2004, 14h45

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