首页 > 解决方案 > 如何从使用匿名变量创建的对象中获取数据

问题描述

我的循环和对象有问题,我不知道如何获取数据。我需要从 MySQL 获取值并创建一个 HTML 表:

[![在此处输入图像描述][1]][1]

他们的表格将是多个表格,并且应该按日期分组。这里我遇到了分组、数据采集和渲染的问题。谁能告诉我什么是错的?

```
private const int cols = 3;
    private string header;
    private string title;

    private StringBuilder body=new StringBuilder(string.Empty);

    public void PrintRes()
    {
        var ID =Cursor.GetFieldValue<int>("ID"); 

        var cmdRec = SqlClient.Main.CreateCommand(@"
        select r.res, r.ID,r.emp, kdk.FIO, cert.date from certres r
        left join kdk on n_kdk=r.EMPL
        left join cert on cert.id=r.ID
        where r.ID=@ID"
            , new SqlParam("ID", ID)).ExecObjects(new { res = 0, fio = string.Empty, date=DateTime.MinValue});
        foreach (var c in cmdRec.GroupBy(x=>x.date))
        {
            for (int i = 0; i < cmdRec.Select(x=>x.date==c.Key.Date).Count(); i++)
            {
                //var titleHead=  string.Format("<tr>{0}</tr>", c.Key);
            }
        }

    }

    public void CreateHtml(int cols,string[] captions)
    {
        cols = captions.Length;
        StringBuilder sb=new StringBuilder(string.Empty);
        foreach (var c in captions)
        {
            sb.AppendFormat("<th>{0}</th>", c);
        }
        var title=string.Format("№", "FIO","Result");
        header = string.Format("<thead><tr>{0}</tr></thead>", sb.ToString());
    }

    public void AddRows(object[] values)
    {
        body.Append("<tr>");
        for (int i = 0; i < values.Length; i++)
        {
            body.AppendFormat("<td>{0}</td>", values[i].ToString());
        }
        for (int i = 0; i < cols; i++)
        {
            body.Append("<tr></tr>");
        }
        body.Append("</tr>");

    }

    public string Html()
    {
        return string.Format("<table>{0}</table><table style=\"boarder:solid 1px;\">{1}<tbody>{2}</tbody></table>", 
            title,header,body.ToString());
    }


  [1]: https://i.stack.imgur.com/xvwG9.png

标签: c#.net

解决方案


推荐阅读