不会json,不过我觉得最好用编程语言来实现这些功能

解决方案 »

  1.   

    这个建议直接用存储过程来做。另外,由于临时表是放在tempdb数据库中的,所以临时表的开销,可以通过在tempdb中多添加几个文件,来适当的降低临时表的开销的,另外,适当增大文件的大小。
      

  2.   

    前端有很多转的API啊。
    参考http://json.codeplex.com/
      

  3.   

    大神,你的球还没回来啊?前端有很多转的API啊。
    参考http://json.codeplex.com/
      

  4.   


    function TableToJson(tableid) {    var txt = "[";    var table = document.getElementById(tableid);    var row = table.getElementsByTagName("tr");    var col = row[0].getElementsByTagName("th");    for (var j = 1; j < row.length; j++) {        var r = "{";        for (var i = 0; i < col.length; i++) {            var tds = row[j].getElementsByTagName("td");            r += "\"" + col[i].innerHTML + "\"\:\"" + tds[i].innerHTML + "\",";        }        r = r.substring(0, r.length - 1)        r += "},";        txt += r;    }    txt = txt.substring(0, txt.length - 1);    txt += "]";    return txt; }这是JS 的写法,,可以仿照这里
      

  5.   

    你不需要获取表的列头啊,类型什么的,你从数据库里面取出的dataset里面本身就含有了列头信息,而且已经有直接转换为JSON格式的方法,不需要你去操心。在后台或者前端用JS都可以转。
      

  6.   

    补充说明一下,我是要在SQL Server中用TSQL写个函数直接输出JSON,而不是取个表给前端的程序去转。
      

  7.   

    前端有很多转的API啊。
    参考http://json.codeplex.com/
    经测试,这个绿色的球,看来短期是回不来了....
      

  8.   

    函数的输出结果很确定,就是一个Nvarchar(Max),但是输入的参数有两个,第一个是个结构不固定表值参数(其结构由生成它的查询语句决定),第二个是生成的JSON变量名。比如,函数名为tojson,查询记录集有三个字段"A"、"B"、"C",查询出了两条记录分别是1、2、3和a、b、c,要输出到JSON变量list1中,那么返回的结果就应该是:
    "list1":[{"A":"1","B":"2","C":"3"},{"A":"a","B":"b","C":"c"}]如果查询记录集有两个字段"X"、"Y",查询出了三条记录分别是x1、y1;x2、y2和x3、y3,要输出到JSON变量List2中,那么返回的结果就应该是:
    "list2":[{"X":"x1","Y":"y1"},{"X":"x2","Y":"y2"},{"X":"x3","Y":"y3"}]
      

  9.   

    如果传输结构不固定的表值参数比较困难的话,那么就传递查询SQL也行,这种情况下,又要如何做呢?
      

  10.   


    呵呵,之前做过,把json转化为记录的,就是还没有做过反过来,把数据转为jason的
      

  11.   

    函数搞不定……最后还是用的存储过程和临时表……只能把最后生成的JSON存在一个全局临时表里,供跨域的调用……