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

ASP.NET Discussion :

[C#] Récuperer données d'une procédure stockée


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Par défaut [C#] Récuperer données d'une procédure stockée
    Bonjour

    J'ai crée une procédure stockée paramétrée qui va chercher dans une table toutes les lignes où le champ "nom" a la valeur de mon paramètre.
    Je parcours les résultats avec un curseur, mais je n'arrive pas à récupérer ces valeurs dans mon code C# pour pouvoir remplir une datasource avec ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SqlConnection connec = new SqlConnection();
    SqlCommand command = new SqlCommand("name_get", connec);
    command.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 255));
    command.Parameters["@name"].Value = s;
    command.CommandType = CommandType.StoredProcedure;
    connec.Open();
    SqlDataReader r = command.ExecuteReader();
     
     
    ddl2.DataSource = reader;
    ddl2.DataBind();
    connec.Close();
    Merci pour votre aide
    Dev

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    Une dropDown list ne je suis pas sûr qu'elle accepte un SQLDataReader comme source de données.

    Essaie éventuellement une dataTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DataTable dt = new DataTable()
    dt.Load(r);
     
     
    ddl2.DataSource = dt;
     
    ddl2.DataValueField  = "ChampValeur";
    ddl2.DataDislpayField  = "Champ à afficher";
     
    ddl2.DataBind();

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par bossun Voir le message
    Une dropDown list ne je suis pas sûr qu'elle accepte un SQLDataReader comme source de données.
    Tout à fait exact.
    Les DataReader ne sont pas énumérables. (pour les lignes).

  4. #4
    Membre habitué
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2011
    Messages : 8
    Par défaut
    Bonjour,

    Il ne te manque pas la propriété out pour ton paramètre renvoyant tes valeurs?

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut
    Citation Envoyé par Bluedeep Voir le message
    Tout à fait exact.
    Les DataReader ne sont pas énumérables. (pour les lignes).
    Pourtant, chez moi, ceci fonctionne très bien:
    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
    using (SqlConnection c = new SqlConnection(@"Data Source=SERVEUR\INSTANCE;Initial Catalog=MaBaseDeDonnees;Integrated Security=True"))
    {
        using (SqlCommand cd = new SqlCommand("SELECT Id, Name FROM MaTable;", c))
        {
            c.Open();
            using (SqlDataReader r = cd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                DropDownList ddl = new DropDownList();
                ddl.DataTextField = "Name";
                ddl.DataValueField = "Id";
                ddl.DataSource = r;
                ddl.DataBind();
                PlaceHolder1.Controls.Add(ddl);
            }
        }
    }
    Il ne faut pas oublier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ddl.DataTextField = "Name";
    ddl.DataValueField = "Id";
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. [CR XI] modifier la source de données d'une procédure stockée vers une commande
    Par battl14 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 18/05/2011, 14h28
  2. Réponses: 2
    Dernier message: 28/05/2006, 23h31
  3. [format des données avec une procédure stockée]
    Par viny dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 10/03/2005, 13h24
  4. Saisie de données dans une procédure stockée
    Par Hastaroth dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/10/2004, 09h54
  5. Vérification du type de données dans une procédure stockée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/09/2004, 11h20

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