convert from SqlDataReader to JSON

后端 未结 13 1197
忘掉有多难
忘掉有多难 2020-11-27 16:26
public string toJSON(SqlDataReader o)
{
    StringBuilder s = new StringBuilder();
    s.Append(\"[\");
    if (o.HasRows)
        while (o.Read())
            s.App         


        
13条回答
  •  独厮守ぢ
    2020-11-27 17:05

    This is to enhance Chandu's Linq answer that uses query syntax (from ... select ...). If you prefer Method Syntax, here is your answer.

    drdr = cmd.ExecuteReader();
    Record[] recs = drdr.Cast().Select( data=>new Record{
                GraphID=(drdr.IsDBNull(0) ? "" : (string)data["LabelX"])
            , XAxis=(drdr.IsDBNull(1) ? "1999-09-09 00:00:00" : Convert.ToDateTime(data["XDate"]).ToString("yyyy-MM-dd HH:mm:ss"))
            , YVal=(drdr.IsDBNull(2) ? 0 : int.Parse(data["YFreq"].ToString()))
            }).ToArray();
    
    MemoryStream mem = new MemoryStream();
    DataContractJsonSerializer szr = new DataContractJsonSerializer(typeof(Record[]));
    szr.WriteObject(mem, recs);
    String jsonData = Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length); 
    

    Hope it helps somebody.

提交回复
热议问题