如何使用asp.net从mssql数据库检索数据到json代码

时间:2016-09-20 07:32:09

标签: javascript jquery asp.net json

我有一个用asp.net和mssql数据库编码的网站 我想用json检索位于我的数据库中的数据并将其打印在div中。该网站正在使用jQuery mobile。我需要它以异步方式工作 这是DataFetch.aspx,它应该从数据库中获取数据并以json格式打印:

    <%
    UserDB udb = new UserDB();
    Users u = udb.SelectById((int)Session["loggedID"]);
    TestDB tdb = new TestDB();
    Tests t = tdb.SelectByStudentID((int)Session["loggedID"]);

 //QueryString["task"] = 1 => Fetch Grades
    if (int.Parse(Request.QueryString["task"]) == 1)
    {

        Response.Write("{ \"grades\":");
        for (int i = 0; i < t.Count; i++)
        {
            if (i != 0)
                Response.Write(",");

            Response.Write(" [{\"subjectName\":\"" + t[i].lesson  + "\", \"date\":\"" + t[i].date + "\", \"grade\":\"" + t[i].grade + "\"}]");
        }
        Response.Write(" }");
    }

结果是json:

{ "grades": [{"subjectName":"Math", "date":"18/09/2016", "grade":"100"}] }

这就是我阅读和解释用DataFetch.aspx编写的json代码的方式:

    var xhttp = new XMLHttpRequest();
    var jsonResult;
    xhttp.onreadystatechange = function () {

        if (this.readyState == 4 && this.status == 200) {
            jsonResult = JSON.parse(this.responseText);
            document.write(jsonResult.grades[0].subjectName);
            }
    }
    xhttp.open("GET", "DataFetch.aspx?task=" + task, true);
    xhttp.send();
    };

&#34; this.responseText&#34;包括html标记和一切。是否有一种优雅的方法来解决它?

1 个答案:

答案 0 :(得分:0)

您可以使用web方法通过使用ajaxcall

从aspx页面获取数据
 [WebMethod]
public static string OnGetData(string task)
{
 //////
 return  jsonResult; /// your json data
}
   <script type="text/javascript">

$(function() {
    var mytask = task;
    $.ajax({
        type: "POST",
        url: "DataFetch.aspx/OnGetData",
        data: "{task:" + mytask + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {
          ///your code
       }
    });
});
</script>