C# 将SQL数据库的行传递给Javascript的最佳方法是什么?

C# 将SQL数据库的行传递给Javascript的最佳方法是什么?,c#,javascript,.net,sql-server,json,C#,Javascript,.net,Sql Server,Json,因此,最近我一直在研究由Javascript控制的HTML5 Indexeddb特性,以及如何将其与SQL Server数据库结合起来,以便在多个数据库之间共享和复制信息,从而使数据库的一个版本可以脱机使用 我遇到的难题是找到将一组对象从SQL Server数据库传递到浏览器javascript的最佳方法,使用C#从数据库获取值 虽然有很多小的“黑客”可以做到(例如,将数据放入标签,然后让Javascript直接获取document.getElementById(“DataHere”).valu

因此,最近我一直在研究由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;
}
public字符串[]GenerateEmployeeSample(){
List listEmps=新列表();
string[]listJSON=新字符串[64];
string[]FirstNames={“Alonso”、“Alfred”、“Angus”、“Alfresco”};
string[]LastNames={“Johnson”、“Williams”、“Zelwegger”、“Jones”};
字符串[]部门={“财务”、“清洁”、“推手”、“楼梯”};
字符串emailEnd=“@email.com”;
对于(int i=0;i<4;i++){
对于(int j=0;j<4;j++){
对于(int k=0;k<4;k++){
Employee tempEmp=新员工();
tempEmp.FirstName=名字[i];
tempEmp.LastName=LastNames[j];
临时部门=部门[k];
temtemp.Email=FirstNames[i]+“+”LastNames[j]+emailEnd;
listEmps.Add(tempEmp);
}
}
}
整数计数=0;
foreach(列表中的员工emp){
string tempString=JsonConvert.SerializeObject(emp);
listJSON[count]=tempString;
计数++;
}
返回listJSON;
}
现在我有了一组数据,如何将这个数组传递给Javascript? 如果这是一个无关紧要的问题,我很抱歉,但是Javascript对我来说还是相当陌生的,在阅读了很多例子之后,我有点不知所措,这些例子要么没有达到我想要的效果,要么根本不起作用


非常感谢您的阅读

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


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

您可以使用一种叫做AJAX的简便小技术。您可以阅读更多关于使用JSON进行数据封装的信息。它几乎在任何现代编程语言中都得到普遍支持,并且比xml或其他传输格式更容易处理。