C# SQL 用LING技术获取数据库数据 ,再转成JSON格式

一般处理程序

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SSC2.DB;  //详见如何生成LING数据访问,微软公司提供的新技术。查询操作可以通过编程语言自身来传达,而不是以字符串形式嵌入到应用程序代码中。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SSC2.WebService
{    
    public class test1 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            //context.Response.ContentType = "text/plain";   结果就会按原样输出文本.
            //context.Response.ContentType = "text/html";    结果是正常的HTML格式输出.
            context.Response.ContentType = "text/plain";   //将要加载的数据设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理。
            using (var db = new InfoDataContext())         //事先要做一个LINQ数据访问,生成*.dbml文件,再导入。 例:using SSC2.DB;
            {
                string sql = "select * from outstanding";

                //数据请求 <>内要填写数据库中的表名 ,否则会出现 “No matching records found” 
                var AssetListAll = db.ExecuteQuery<outstanding>(sql).ToList();//对<outstanding>数据库,执行sql查询,查询结果转成列表形式

                //处理数据
                var AssetList = AssetListAll.Skip(0).Take(10).ToList();         //从第1条数据开始,每页显示10条
                var result = JsonConvert.SerializeObject(AssetList.ToArray());  //要导入 using Newtonsoft.Json
                string s = "{\"rows\":" + result + ",\"total\":" + AssetListAll.Count + "}"; //转变成json需要的格式
                JObject jo = (JObject)JsonConvert.DeserializeObject(s);        //反序列到指定的类型  头部要导入:using Newtonsoft.Json.Linq;

                //返回数据
                context.Response.Write(jo);
            }
        }

        //公共布尔值可重复使用
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

posted @ 2023-03-20 16:21  AutomationAnywhere  阅读(257)  评论(0)    收藏  举报