La création d'un résultat JSON à partir de base de données SQL server

J'ai un serveur SQL avec la mise en page suivante

Table (    id int
           title varchar(40),
           start Date(),
           end Date(),
           allDay bool,
           username varchar(40)
      );

J'ai obtenu le code suivant à partir ce blog pour créer un objet JSON à partir des données que je veux utiliser, mais ses données sont stockées de manière différente. Comment puis-je créer le même objet, extrait de ma base de données?

Je suppose que j'ai besoin de faire la file un .cshtml fichier plutôt qu'une .fichier js et utiliser ceci :

@{
    var db = Database.Open("events"); 
    var selectQueryString = "SELECT * FROM events";
}

 @foreach(var row in db.Query(selectQueryString)){ }

Mais comment puis-je adapter ce code pour produire le même objet JSON?

Voici le code à partir du blog, mon but est ci-dessous :

public JsonResult GetEvents(double start, double end)
{
    var userName = Session["UserName"] as string;
    if(string.IsNullOrEmpty(userName))
    {
        return null;
    }

    var fromDate = ConvertFromUnixTimestamp(start);
    var toDate = ConvertFromUnixTimestamp(end);

    var rep = Resolver.Resolve<IEventRepository>();
    var events = rep.ListEventsForUser(userName,fromDate,toDate);

    var eventList = from e in events
                    select new {
                                id = e.Id,
                                title = e.Title,
                                start = e.FromDate.ToString("s"),
                                end = e.ToDate.ToString("s"),
                                allDay = false
                            }; 

    var rows = eventList.ToArray();
    return Json(rows,JsonRequestBehavior.AllowGet);           
}

Edit :

Je travaille maintenant avec le suivant .cshtml code de la GetEvents de commande, mais il ne fonctionnera pas. Quelqu'un a une idée ?

   @{ 
        var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        var fromDate = origin.AddSeconds((Request["start"]));
        var toDate = origin.AddSeconds(Request["end"]);

        var db = Database.Open("events");
        var result = db.Query("SELECT * FROM events");
        var data = result.Select(x => new 
        {
            id = x.id,
            title = x.title,
            start = x.start.ToString("s"),
            end = x.end.ToString("s"),
            allDay = false            
        }).ToArray();

        Json.Write(data, Response.Output);
        Response.ContentType = "application/json";
    }
Quel est le problème avec JavacriptSerializer?
Comment puis-je utiliser JavascriptSerializer dans ce cas?

OriginalL'auteur Simon Kiely | 2012-02-23