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 :

Problème procédure stockée


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut Problème procédure stockée
    Bonjour, je fais actuellement le tutoriel
    http://barlatier.developpez.com/csha...stockee/cours/
    sur les procédures stockées
    J'ai un problème pour le code C# pour tester la PS avec un DataGridView.

    J'ai cette ligne ci qui pose problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dataGridView1.SetDataBinding(dt, "OrdersByDate");
    dans ce 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
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Data.SqlClient;
     
     
    	private void button1_Click(object sender, System.EventArgs e)
     
    			{
     
    				SqlConnection con= new SqlConnection("Data Source=NICOLAS;" +
    			"Initial Catalog=Northwind;Integrated Security=SSPI");
     
     
    			try 
    				{
     
    				SqlCommand com= new SqlCommand("OrdersByDate",con);
    				com.CommandType=CommandType.StoredProcedure;
    				com.Parameters.Add("@StartDate",SqlDbType.DateTime).Value=
    				new DateTime(1997,1,1);
     
    				com.Parameters.Add("@EndDate",SqlDbType.DateTime).Value=
    				new DateTime(1997,1,1);
    				SqlDataAdapter DA= new SqlDataAdapter(com);
    				DataSet dt=new DataSet("Orders");
    				DA.Fill(dt,"OrdersByDate");
    				dataGrid1.SetDataBinding(dt,"OrdersByDate");
     
    				}
     
    			catch(Exception ex)
     
    				{
    				MessageBox.Show(this,ex.Message,"Erreur",MessageBoxButtons.OK);
    				}
     
    			}
    l'erreur est :

    Erreur 1 'System.Windows.Forms.DataGridView' ne contient pas une définition pour 'SetDataBinding' et aucune méthode d'extension 'SetDataBinding' acceptant un premier argument de type 'System.Windows.Forms.DataGridView' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)
    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Effectivement, la méthode existe dans une DataGrid (comme dans le tutoriel) mais pas dans une DataGridView. Par contre, je ne connais pas la différence entre les deux

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le DataGrid de Windows Forms est l'ancêtre du DataGridView ; il est obsolète depuis .NET 2.0...

    L'équivalent de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGrid1.SetDataBinding(dt,"OrdersByDate");
    Pour un DataGridView serait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dataGrid1.DataSource = dt;
    dataGrid1.DataMember = "OrdersByDate";
    Mais bon, tu vas vite rencontrer d'autres problèmes si tu utilises un contrôle différent de celui du tuto... tu ferais mieux de chercher un tuto qui parle du DataGridView

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 202
    Par défaut
    Merci pour vos réponses.
    Pour le moment j'ai pas encore trouvé de tuto assez récent pour les procédures stockées, je cherche encore.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Le DataGrid de Windows Forms est l'ancêtre du DataGridView ; il est obsolète depuis .NET 2.0...

    L'équivalent de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGrid1.SetDataBinding(dt,"OrdersByDate");
    Pour un DataGridView serait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dataGrid1.DataSource = dt;
    dataGrid1.DataMember = "OrdersByDate";
    Mais bon, tu vas vite rencontrer d'autres problèmes si tu utilises un contrôle différent de celui du tuto... tu ferais mieux de chercher un tuto qui parle du DataGridView
    Pour le DataGridView :
    DataGridView.DataSource = DV;

    DataView DV = new DataView(DT,"","",DataViewRowState.CurrentRows)
    dans les premiers "" tu mets tes conditions where, et les deuxiemes "" sont la pour ordonées tes données.

    d'ailleur pour être efficace tu devrai faire un SqlException dans ton catch au lieu d'exception.

    en espérant que j'ai pu aider à résoudre ton problème

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par sixcoups Voir le message
    Pour le DataGridView :
    DataGridView.DataSource = DV;

    DataView DV = new DataView(DT,"","",DataViewRowState.CurrentRows)
    dans les premiers "" tu mets tes conditions where, et les deuxiemes "" sont la pour ordonées tes données.
    Effectivement, mais rien n'oblige à passer par une DataView... si tu mets simplement la DataTable, ça utilise la vue par défaut

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 10
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Effectivement, mais rien n'oblige à passer par une DataView... si tu mets simplement la DataTable, ça utilise la vue par défaut
    Oui, mais la DataView te permet de faire moins de requêtes car tu peux y passer tes conditions WHERE, contrairement au DataTable qui t'impose de concevoir chaques requêtes.

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

Discussions similaires

  1. Problème procédure stockée
    Par toomsbzh dans le forum SQL
    Réponses: 9
    Dernier message: 31/05/2007, 11h55
  2. Problème procédure Stockée + VBS
    Par gothard dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/02/2007, 16h39
  3. Réponses: 2
    Dernier message: 20/09/2006, 14h38
  4. problème procédure stockée
    Par hamham dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/04/2006, 12h33
  5. Problème procédure stockée + trie
    Par an_merle dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/02/2006, 22h58

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