Bonjour,

En me connectant à une base de données MySQL, j'aimerai réussir à lire les informations d'une table pour les afficher.
Étant (grand) débutant, j'ai d'abord parcouru le net pour trouver la façon de faire ça. J'ai donc identifié deux méthodes (évidemment ce ne sont peut-être ni les seules ni les meilleurs) :
* la première repose sur DataReader (OdcbDataReader en l'occurrence). Problème, je n'arrive pas à trouver comment récupérer l'information qui se trouve dans :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
string libelle = reader.GetString(3);
* la seconde méthode repose sur le DataSet et le DataAdapter. D'après ce que j'ai compris, la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
this.Controls.Add(table_donnees);
devrait ajouter une grille avec les informations sur ma page, mais rien n'apparaît...

Voici le code dans son ensemble :
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;
using System.Data.Odbc;
using System.Data;
using System.Windows.Forms;
 
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            OdbcDataAdapter mes_donnees = new OdbcDataAdapter();
            DataGrid table_donnees =new DataGrid();
            DataSet donnees_cache = new DataSet();
 
            //Récupération de la chaîne de connexion sur la base de données AEC_MYSQL dans le fichier de configuration
            string connection_mysql = WebConfigurationManager.ConnectionStrings["AEC_MYSQL"].ConnectionString;
 
            //Construction d'une connexion sur la BD
            OdbcConnection ma_connection = new OdbcConnection(connection_mysql);
 
            //Construction d'une requête
            OdbcCommand requete = new OdbcCommand("SELECT * FROM `AGENDA_EVT`", ma_connection);
 
            //Ouverture de la connexion sur la BD
            ma_connection.Open();
 
            mes_donnees.SelectCommand = requete;
            mes_donnees.Fill(donnees_cache);
 
            table_donnees.DataSource = donnees_cache;
 
            this.Controls.Add(table_donnees);
 
            //Exécution de la requête sur la BD 
            OdbcDataReader reader = requete.ExecuteReader();
 
            while (reader.Read())
            {
                string libelle = reader.GetString(3);
            }
 
            //Fermeture de la connexion sur la BD
            ma_connection.Close();
 
            //Mise à jour du label
            //Label1.Text = libelle;
        }
        catch (OdbcException MyOdbcException) //Catch any ODBC exception ..
        {
            for (int i = 0; i < MyOdbcException.Errors.Count; i++)
            {
                Console.Write("ERROR #" + i + "\n" +
                              "Message: " +
                              MyOdbcException.Errors[i].Message + "\n" +
                              "Native: " +
                              MyOdbcException.Errors[i].NativeError.ToString() + "\n" +
                              "Source: " +
                              MyOdbcException.Errors[i].Source + "\n" +
                              "SQL: " +
                              MyOdbcException.Errors[i].SQLState + "\n");
            }
        }
    }
}
Donc si quelqu'un pouvait m'apporter un peu d'aide sur l'une ou l'autre des méthodes (voire les deux), je lui en saurais grès.

Nicolas