做Winform習慣了,大家都習慣設置datasource這樣的寫法。
如果想實現頁面定時刷新的話,用.net給封裝好的updatepanel和timer兩個控件實現起來其實挺容易的。這樣做加入了很多你不能控制的元素,舉個例子說就是:用updatepanel后,你設置的樣式很有可能就變了,然后你還需要去調這些。所以還是用一些自己控制性高的代碼比較合適。
今天就先從這個updatepanel加timer實現頁面自動刷新這個例子來下手吧。
首先來看一下我的一般處理程序,在這個里面,我自己實現的是從數據庫中查出datatable,然后轉換成json傳輸給客戶端
代碼如下:
/// <summary>
/// getData 的摘要說明
/// </summary>
public class getData : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
//設置查詢字符串
string strSql = "select ckrID,chrCarNumber,cncName,bcrName from T_CarNumberCategory,T_CheckResult,t_BusinessCategory where ckrcheckresult is null and cncID=ckrcarnumbercategoryid and ckrBusinessCategory=bcrID";
//設置連接字符串
string strConn = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.24.173)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=admin;Password=123123";
//定義并打開數據庫連接
OracleConnection conn = new OracleConnection(strConn);
conn.Open();
//定義命令行對象,
OracleCommand cmd = new OracleCommand(strSql, conn);
//定義一個適配器,用來填充Datatable ;
OracleDataAdapter adp = new OracleDataAdapter(cmd);
//定義一個DataTable并用適配器對其進行填充
DataTable dt = new DataTable();
adp.Fill(dt);
context.Response.Write(JsonConvert.SerializeObject(dt));
//上面的是我從數據庫中查詢到的datatable,然后用一個Json操作類庫將其轉換為Json
////由于大家沒有數據庫環境,我把上面的字符串復制出來,供大家測試實驗用
////由于復制出來是雙引號,放這里會報個錯誤,所以我改成單引號了
////但是客戶端在獲取json的時候,是認雙引號的,所以不得不再替換回來。。。心碎
//var json = "[{'CKRID':'1359374764563','CHRCARNUMBER':'123123','CNCNAME':'大型汽車','BCRNAME':'核發檢驗合格標志'},{'CKRID':'1359371470153','CHRCARNUMBER':'asdfsadf','CNCNAME':'大型汽車','BCRNAME':'注冊登記'},{'CKRID':'1359343210678','CHRCARNUMBER':'111222','CNCNAME':'大型汽車','BCRNAME':'注冊登記'},{'CKRID':'1359354395618','CHRCARNUMBER':'123asd','CNCNAME':'大型汽車','BCRNAME':'注冊登記'},{'CKRID':'1359355217314','CHRCARNUMBER':'123asdqwe','CNCNAME':'大型汽車','BCRNAME':'注冊登記'},{'CKRID':'1359355356271','CHRCARNUMBER':'1111111','CNCNAME':'大型汽車','BCRNAME':'注冊登記'},{'CKRID':'1359355490374','CHRCARNUMBER':'123123123','CNCNAME':'大型汽車','BCRNAME':'注冊登記'},{'CKRID':'1358074597852','CHRCARNUMBER':'323232','CNCNAME':'使館汽車','BCRNAME':'核發檢驗合格標志'}]";