透過網頁的方式來傳遞資料給手機或平板等
,大多使用JSON的格式,但是一般使用JSON都要經過層層轉換,在程式撰寫上不甚便利,經過多方嘗試,找出最便利且快速的方式來產生JSON資料串.
由於只是單純呈現資料,不需版面等資料,所以新增一個泛型處理常式的頁面(ashx),在資料庫繫結的部分使用以下語法
SELECT A,B,C,D FROM TABLE_1 FOX XML AUTO,ROOT('TABLE_1')
即可由資料庫產生XML的結構檔,資料庫版本需為MS SQL2005以上版本才有支援,
ROOT('TABLE_1')一定要加上,不然會有錯誤產生.
轉換JSON使用目前評價最好的JSON.NET,在VISUAL STUDIO中,使用NuGet找到JSON.NET套件,安裝完就可以使用,使用前先宣告進來
完整程式碼如下
<%@ WebHandler Language="C#" Class="prog" %>
using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using Newtonsoft.Json;
public class prog : IHttpHandler {
public void ProcessRequest (HttpContext context) {
using (SqlConnection conn = new SqlConnection (System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
conn.Open();
SqlCommand cmd1 = new SqlCommand("SELECT A,B,C,D FROM TABLE_1 FOX XML AUTO,ROOT('TABLE_1')", conn);
XmlDocument xDoc = new XmlDocument();
xDoc.Load(cmd1.ExecuteXmlReader());
string json = JsonConvert.SerializeXmlNode(xDoc);
context.Response.ContentType = "text/plain";
context.Response.Write(json);
}
}
public bool IsReusable {
get {
return false;
}
}
}
沒有留言:
張貼留言