Bonjour

J'ai une datagrid declaré dans une page aspx

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
 <asp:DataGrid ID="DataGrid1" HorizontalAlign="Center" CellPadding="3"
    HeaderStyle-BackColor="#F7F7F7" EditItemStyle-BackColor="#F7F7F7"
    AutoGenerateColumns="false" DataKeyField="IdNum"  
    Runat="server" BorderColor="#207DBC" BorderWidth="3px" CellSpacing="3" 
                CssClass="body_txt" BorderStyle="Solid">
 
    <EditItemStyle BackColor="#F7F7F7"></EditItemStyle>
 
           <Columns>            
           <asp:BoundColumn DataField="DateEvent" HeaderText="DATE"/>   
           <asp:BoundColumn DataField="IdTag" HeaderText="TAG UID"/>   
           <asp:BoundColumn DataField="Nom" HeaderText="MANUFACTURER"/>       
           <asp:BoundColumn DataField="Description" HeaderText="DESCRIPTION"/> 
           <asp:BoundColumn DataField="Diametre" HeaderText="DIAMETER"/>  
           <asp:BoundColumn DataField="Longueur" HeaderText="LENGTH"/>          
           <asp:BoundColumn DataField="State" HeaderText="ACTION"/>        
 
           </Columns>
Ce datagrid se remplit par un requete SQL qui est testée directement et semble marcher correctement

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
 private void BindDataGrid(int user)
    {
        MySqlConnection Connection = new MySqlConnection();
        Connection.ConnectionString = ConfigurationManager.ConnectionStrings["MySQLConnStr"].ConnectionString;
        try
        {
            // Ici, on ouvre la connexion au serveur
            Connection.Open();
        }
        catch (Exception excp)
        {
            Exception myExcp = new Exception("Could not Open. Error: " +
                excp.Message, excp);
            throw (myExcp);
        }

       // string MySQLCmd = string.Format("SELECT e.DateEvent,a.IdTag,b.State,d.Nom,d.Description,d.Diametre,d.Longueur,b.IdNum,c.RefProduit,d.Reference,e.IdNum,e.IdUser FROM tageventtable a,statetable b,produittable c,producttable d,readereventtable e WHERE a.IdState<>2 AND a.IdState=b.IdNum AND a.IdEvent=e.IdNum AND a.IdTag=c.TagId AND e.IdUser={0} AND c.RefProduit=d.Reference ORDER BY e.DateEvent DESC LIMIT 20", user);
        string MySQLCmd = string.Format("SELECT b.DateEvent,a.IdTag,d.Nom,d.Description,d.Diametre,d.Longueur,e.State FROM tageventtable a JOIN readereventtable b ON a.IdEvent=b.IdNum JOIN produittable c ON a.IdTag=c.TagId JOIN producttable d ON d.Reference=c.RefProduit JOIN statetable e ON e.IdNum=a.IdState WHERE b.IdUser={0} AND a.IdState<>2 ORDER BY b.DateEvent DESC LIMIT 20;", user);
        MySqlCommand readEvent = new MySqlCommand(MySQLCmd, Connection);

        try
        {
            DataGrid1.DataSource = readEvent.ExecuteReader();
            DataGrid1.DataBind();
            readEvent.Dispose();
        }
        catch (Exception ex)
        {
            Response.Write("An error occured: " + ex.Message);
        }
        Connection.Close();
    }
Par contre en pas a pas j'ai l'erreur suivante

An error occured: DataBinding : 'System.Data.Common.DataRecordInternal' ne comporte pas de propriété appelée 'IdNum'.
qui arrive au niveau du la ligne rouge et je ne comprend le sens de cette erreur car je ne select pas la colonne Idnum mais elle me sert pour trier mes colonnes dans les predicat des JOIN


Si Qq'un peut m'aiguiller

cordialement