0

クエリの結果をjsonに変換しようとしています。

    string esql = "select d.dpr_ts, d.dpr_close from Entities3.dpr_mm as d";//where dpr_qot_id=2029543939 and dpr_ts>='" + start + "' and  dpr_ts<='" + end + "'";
    EntityConnection econn = new EntityConnection("name=Entities3");

    econn.Open();

    EntityCommand ecmd = econn.CreateCommand();
    ecmd.CommandText = esql;
    EntityDataReader ereader = ecmd.ExecuteReader(CommandBehavior.SequentialAccess);
    Console.WriteLine("Entity SQL Result");
    StringBuilder result = new StringBuilder();
    int i = 0;
    while (ereader.Read())
    {
        if (i > 0) result.Append(","); i++;
        result.Append("['" + ereader.GetDateTime(0).ToShortDateString() + "'," + ereader.GetValue(1) + "]");
    }
    ViewBag.ChartData = "[" + result.ToString() + "]";

ViewBagに保存したい。ただし、結果の文字列は次のようになります:([&#39;10.01.2011&#39;,3,9990],[&#39;11.01.2011&#39;]したがって"'" 、に変換され&#39;ます)。どうすればそれを回避できますか?

ところで:私は一般的にこのタスクをより良くすることができますか?

4

1 に答える 1

3
  1. SQLからの結果をオブジェクトに変換します。動的オブジェクトでも機能します。
  2. オブジェクトをに入れますViewBag
  3. ビューで、を使用してオブジェクトをJSONとしてレンダリングしますJson.Net

ここに例があります

コントローラ

var data = GetDataFromDatabaseAndMapToObject();
ViewBag.TheData = data;

return View(model);

見る

<script type="text/javascript">
    var json = @Html.Raw(JsonConvert.Serilaized(ViewBag.TheData));
    //use json however you would like.
</script>
于 2012-11-29T17:37:20.957 に答える