0

因此,最近我一直在研究由 Javascript 控制的 HTML5 Indexeddb 功能,以及如何将其与 SQL Server 数据库结合以共享和复制信息,以便可以离线使用数据库版本。

我遇到的难题是找到将一组对象从 SQL Server 数据库传递到浏览器的 javascript 的最佳方法,使用 C# 从数据库中获取值。

虽然有很多小“黑客”可以完成(例如,将数据放入标签,然后让 Javascript 将其拾取 document.getElementById("DataHere").value;)我想知道是否有更有效的传递方式跨数据库的内容?

目前,我有一个生成字符串数组的方法(全部采用 JSON 格式,使用 JSON.Net 包)作为从数据库返回的示例。

    public string[] GenerateEmployeeSample() {
    List<Employee> listEmps = new List<Employee>();
    string[] listJSON = new string[64];
    string[] FirstNames = {"Alonso", "Alfred", "Angus", "Alfresco" };
    string[] LastNames = {"Johnson","Williams", "Zelwegger", "Jones" };
    string[] Departments = {"Finance", "Cleaning", "Pusher", "Stairs" };
    string emailEnd = "@email.com";

    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            for (int k = 0; k < 4; k++) {
                Employee tempEmp = new Employee();
                tempEmp.FirstName = FirstNames[i];
                tempEmp.LastName = LastNames[j];
                tempEmp.Department = Departments[k];
                tempEmp.Email = FirstNames[i] + "." + LastNames[j] + emailEnd;
                listEmps.Add(tempEmp);
            }
        }
    }
    int count = 0;
    foreach(Employee emp in listEmps){
        string tempString = JsonConvert.SerializeObject(emp);
        listJSON[count] = tempString;
        count++;
    }

    return listJSON;
}

所以现在我有一组数据,我怎么能把这个数组传递给 Javascript?如果这是一个微不足道的问题,我深表歉意,但 Javascript 对我来说仍然相当新,并且在阅读了很多没有做我想要的或者完全没有工作的例子之后,我有点不知所措。

非常感谢您的阅读!

4

1 回答 1

0

更具体地说,您将创建一个在请求时返回 JSON 字符串的资源(无论是 aspx 页面还是 json 文件等)。您已经完成了这一步,因为您已经获得了将对象序列化为 JSON 的代码。一种简单的方法是创建一个页面,使用该页面输出此函数的返回值Response.Write(GenerateEmployeeSample());

然后,您将使用 XMLHttpRequest 对象来请求此资源,并使用 javascript 解析返回的 JSON JSON.parse,这将返回一个本机 javascript 对象。然后你可以随心所欲地处理这个对象。

于 2012-10-30T17:05:00.453 回答