【问题标题】:How to convert SQL Server query to JSON如何将 SQL Server 查询转换为 JSON
【发布时间】:2020-01-19 13:03:25
【问题描述】:

我需要使用这个 SQL 查询的结果在视图中构建一个表

    SELECT f.empresaid,
       e.fantasia                  AS Empresa,
       f.filialid,
       f.fantasia                  AS Filial,
       u.consultorid               AS ConsultorID,
       cs.nome                     AS Consultor,
       ''                          AS Midia,
       fp.campoextra,
       Count(DISTINCT p.usuarioid) AS Total,
       Count(DISTINCT u.ativacao)  AS TotalAtivos,
       Iif(Count(DISTINCT p.usuarioid) > 0, ( Cast(
       Count(DISTINCT u.ativacao) AS DECIMAL) / Count(DISTINCT p.usuarioid) ), 0
       ) * 100
                                   AS Porcentagem
FROM   formas_pagamento fp
       INNER JOIN usuarios u
               ON u.forma_pagamentoid = fp.forma_pagamentoid
       INNER JOIN pagamentos p
               ON p.usuarioid = u.usuarioid
                  AND p.tipo = 'MTU'
       INNER JOIN cartoes c
               ON c.usuarioid = u.usuarioid
                  AND c.dependenteid = 0
       INNER JOIN midias m
               ON m.descricao = u.midia
       INNER JOIN consultores cs
               ON cs.consultorid = u.consultorid
       INNER JOIN filiais f
               ON f.filialid = u.filialid
       INNER JOIN empresas e
               ON e.empresaid = f.empresaid
WHERE  c.dependenteid = 0
       AND u.cadastro > '2019-07-01'
       AND u.cadastro < '2019-08-01'
       AND u.filialid = 3
GROUP  BY f.empresaid,
          e.fantasia,
          f.filialid,
          f.fantasia,
          u.consultorid,
          cs.nome,
          fp.campoextra
ORDER  BY empresaid,
          filialid,
          consultor,
          campoextra 

这给了我result,视图中的表应该使用如下结构创建table structure and organization。我试图直接从我的 ViewModel 列表中加载此查询数据,但这很重,如果我可以有一个如下的 json 数组:JSON 我可以更轻松地构建具有所需结构的表,有人可以帮忙吗?谢谢!

----------------------编辑------------ --------------------------

public List<ViewModelOrigemEConsultor> GetConsultorOrigem ()
    {
        var Lista = new List<ViewModelOrigemEConsultor>();
        /*string SQL = SQL QUERY GOES HERE */

        var cnn = CnnDB.OpenDB();
        using (cnn)
        {
            var cmd = new SqlCommand(SQL, cnn);
            cnn.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                decimal Porcentagem = 0;
                while (reader.Read())
                {
                    Porcentagem = (decimal)(Convert.ToInt32(reader["TotalAtivos"]) / Convert.ToInt32(reader["Total"]));
                    Lista.Add(new ViewModelOrigemEConsultor
                    {
                        EmpresaID = Convert.ToInt32(reader["EmpresaID"]),
                        Empresa = reader["Empresa"].ToString(),
                        FilialID = Convert.ToInt32(reader["FilialID"]),
                        Filial = reader["Filial"].ToString(),
                        ConsultorID = Convert.ToInt32(reader["ConsultorID"]),
                        Consultor = reader["Consultor"].ToString(),
                        Midia = reader["Midia"].ToString(),
                        FormaPagamento = reader["FormaPagamento"].ToString(),
                        Total = Convert.ToString(string.Format("{0:N}", reader["Total"])),
                        TotalAtivos = Convert.ToString(string.Format("{0:N}", reader["TotalAtivos"])),
                        Porcentagem = Convert.ToString(string.Format("{0:N}", Porcentagem))
                    });
                };
            }

        }; 

        return Lista; 
    }

型号

public class ViewModelOrigemEConsultor
{
    public int EmpresaID { get; set; }
    public string Empresa { get; set; }
    public int FilialID { get; set; }
    public string Filial { get; set; }
    public int ConsultorID { get; set; }
    public string Consultor { get; set; } 
    public string Midia { get; set; }
    public string FormaPagamento { get; set; }
    public string Total { get; set; }
    public string TotalAtivos { get; set; }
    public string Porcentagem { get; set; }
}

【问题讨论】:

标签: html json sql-server asp.net-mvc view


【解决方案1】:

如果您已经填充了对象列表并且只是想将其转换为 JSON,只需使用 https://www.nuget.org/packages/Newtonsoft.Json 之类的东西,然后将列表序列化为 json。在这种情况下,它类似于:

var json = JsonConvert.SerializeObject(model);

【讨论】:

    猜你喜欢
    • 2016-03-28
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2016-07-29
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多