Bonjour,

J'ai un petit soucis avec c#.NET. En effet, le code suivant dois me créer une fiche excel contenant des recettes, des produits qui la compose et du tarif total. Voici le 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
42
43
44
45
46
47
48
49
50
51
52
        private void toolStripButton5_Click(object sender, EventArgs e)
        {
 
            dataBase mydatabase = new dataBase("localhost", "theproject", "root");
 
            int dateDayMySQL = DateTime.Now.Day;
            string sDay = dateDayMySQL.ToString();
            int dateMonthMySQL = DateTime.Now.Month;
            string sMonth = dateMonthMySQL.ToString();
            int dateYearMySQL = DateTime.Now.Year;
 
            string sYear = dateYearMySQL.ToString();
 
            bool connectionDeleteStatus = mydatabase.SelectRecette("SELECT xdb_recette.name," +
            " GROUP_CONCAT(xdb_element.name SEPARATOR ', '), ROUND(SUM(qt*xdb_element.price) / sum(qt)*2,1)/2" +
            " FROM xdb_recetteComposant" +
            " LEFT JOIN xdb_element ON xdb_element.id = xdb_recetteComposant.element" +
            " LEFT JOIN xdb_recette ON xdb_recette.id = xdb_recetteComposant.recette" +
            " GROUP BY recette");
 
            Workbook wb = new Workbook();
            Worksheet ws = wb.Worksheets.Add("Recette");
            WorksheetStyle wsBold = wb.Styles.Add("10");
 
            wsBold.Font.Bold = true;
 
            ws.Table.Columns.Add(new WorksheetColumn(200));
            ws.Table.Columns.Add(new WorksheetColumn(150));
            ws.Table.Columns.Add(new WorksheetColumn(150));
 
            WorksheetRow wr = new WorksheetRow();
            WorksheetCell wcRecette = new WorksheetCell("Recette", DataType.String, "10");
            WorksheetCell wcProduits = new WorksheetCell("Produits", DataType.String, "10");
            WorksheetCell wcPrix = new WorksheetCell("Prix", DataType.String, "10");
 
            wr.Cells.Add(wcRecette);
            wr.Cells.Add(wcProduits);
            wr.Cells.Add(wcPrix);
            ws.Table.Rows.Add(wr);
 
            foreach (DataRow row in mydatabase.myDataTable.Rows)
            {
                wr = new WorksheetRow();
                // ajout d’une cellule à une ligne
                wr.Cells.Add(row[0].ToString());
                wr.Cells.Add(row[1].ToString());
                wr.Cells.Add(row[2].ToString());
                ws.Table.Rows.Add(wr);
            }
 
            wb.Save(@"c:\test.xls");
        }
La requête SQL fonctionne très bien, mais voilà le resultat excel:

Recette Produits Prix
Ma recette System.Byte[] 45.3
Recette de pomme de terre frite System.Byte[] 11.95


Pourquoi je n'ai pas les composants mais system.byte[]?

Meilleures salutations !


Edit:

bool connectionDeleteStatus = mydatabase.SelectRecette("SELECT xdb_recette.name," +

" GROUP_CONCAT(xdb_element.name SEPARATOR ', '), ROUND(SUM(qt*xdb_element.price) / sum(qt)*2,1)/2" +

" FROM xdb_recetteComposant" +

" LEFT JOIN xdb_element ON xdb_element.id = xdb_recetteComposant.element" +

" LEFT JOIN xdb_recette ON xdb_recette.id = xdb_recetteComposant.recette" +

" GROUP BY recette");