Copier les donnees du datareader dans un datagrid

Signaler
Messages postés
21
Date d'inscription
jeudi 7 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2018
-
Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
-
Bonjour! je developpe une ptite application sous C# . je voudrai executer une procedure stockée comportant 3 parametres puis afficher le resultat dans un Datagrid. pour arriver a mes fin j'utilise plusieurs oibjets dont : SqlDataCommand et SqlDataReader.
Vous trouverez ci dessous la liste des objets utilisés puis les lignes de code ecrites:

// liste des objets utilisés
 Sqlconnection- SqlCommand-SqlDataReader-SqlDataAdatpter et un DataSet


//code au chargement du formulaire

pravite void form_load(...)
{
sqlconnection.Open();    // ouverture de la connection
SqlCommand = new Sqlcommand("Exec NomProcedurestocke para1,para2,para3"); //instruction sql executée
SqlDataAdapter.SelectCommand = SqlCommand;
SqlDataReader = SqlCommand.ExecuteReader;(CommandBehavior.connectionClose);
While(SqlDataReader.read())
{
dataset = new dataset(sqldatareader.getsqlValue(0). ToString());
SqlDataAdapter.Fill(dataset,"nomprocedurestocke");
datagrid.Datasource = "dataset";
datagrid.datamember = sqldatareader.ToString();
}
}
 NB : après l'execution ce message d'erreur s'affiche : Datareader associé à cette connection est dejà ouvert, il doit être fermé d'abord.
         je n'arrive qu'à extraire une seule colonne de l'enregistrement (et non tous les enregistrements)  en fonction de la valeur de l'index du Sqldatareader.

merci pour l'aide que vous voudrez bien m'apporter.

1 réponse

Messages postés
666
Date d'inscription
dimanche 16 décembre 2007
Statut
Membre
Dernière intervention
11 mars 2010
4
Ouille !


Je comprends pas tres bien tout ce que tu essaye de faire mais voici un exemple tres simple qui devrait suffire


      // declaration du string de commande
      selectcmd = "SELECT distinct dag,chauffeurID FROM `tours` order by chauffeurID, dag";
      // declaration de la commande dans l'adapter
      adaJourChauf.SelectCommand = new MySqlCommand(selectcmd, MyConn.conn);  
     // declaration d'un dataset
      DataSet dsJourChauf = new DataSet();
     // remplissage du dateset
      adaJourChauf.Fill(dsJourChauf);
    // Bind (et remplissage automatique du datagridview)
      dgv_Tour.DataSource = dsJourChauf.Tables[0];

Voila c'est fini !