使用jQuery的ajax技術+JSON數據格式+C#+SQL Server實現數據顯示

2020-12-20 一都編程

01第一節:概述

#JavaScript#對於jQuery的ajax技術,本身就是一種很輕的數據操作方法,可以通過ajax技術從遠程的伺服器上拉取數據,這樣做就可以實現單向的拿出數據,然後斷開連接,剩下的就是在客戶端進行操作了,是一種很輕量級的操作數據的方法。

這裡使用jQuery的ajax技術+JSON格式的數據+SQL Server資料庫來實現數據以表格形式顯示的功能。

02第二節:編寫ASPX頁面後臺代碼

這裡我們通過ajax技術向ASP.NET WebForm編寫的後臺代碼請求數據。

對於ASPX頁面,微軟使用了巧妙的Web方法標註靜態方法可以被遠程的Ajax調用。

這裡創建一個普通的aspx頁面,然後在該頁面的*.aspx.cs後臺代碼中編寫一個靜態方法,這裡需要提前引入Newtonsoft.Json的第三方程序集。

完整C#代碼如下:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.Services;using System.Web.Script.Services;using Newtonsoft.Json;using System.Data;namespace Yidosoft.Edu.JSWeb{public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}[WebMethod]//對於前臺的Get請求,必須使用[ScriptMethod(UseHttpGet=true)],否則出現500錯誤,//但是對於POST請求,則無需使用[ScriptMethod(UseHttpGet=true)]。[ScriptMethod(UseHttpGet=true)]public static string GetJsonData(){DBHelper db = new DBHelper();DataTable dt = db.GetDataTable("select * from AJAXTable");string str = JsonConvert.SerializeObject(dt);return str;}}}

這段C#代碼說明如下:

1:引用命名空間:

using System.Web.Services;

using System.Web.Script.Services;

這兩個命名空間是使用腳本請求Web方法的類庫。

Newtonsoft.Json是個第三方的JSON處理相關的類庫,現在已成為微軟的標準。

2:[WebMethod]:

對於被腳本調用的方法,該屬性必須在方法上標註。WebMethod存在System.Web.Services名稱空間下。

3:靜態方法:

對於被腳本調用的方法,也必須是靜態的方法。

4:[ScriptMethod(UseHttpGet=true)]:

如果$.ajax()使用的是GET請求,則必須使用[ScriptMethod(UseHttpGet=true)]進行標註,否則會出現HTTP 500錯誤,存在System.Web.Script.Services名稱空間下。

對於POST請求,此標註可以省略。

5:JsonConvert.SerializeObject():

使用該方法可以將任何對象序列化為JSON字符串。

03第三節:編寫$.ajax()代碼

有了伺服器端的後臺代碼,我們就可以在自己的客戶端請求伺服器端的數據了。

在Html文件中編寫如下客戶端代碼:

<!DOCTYPE html><html><head><title></title><script src="jquery-3.3.1.js"></script><script type="text/javascript">function loadData() {var d= $.ajax({url: "WebForm1.aspx/GetJsonData",dataType: "json",type: "GET",//當返回json格式時,contentType不設置也是返不回的。contentType: "application/json",success: function (data,status,xhr) {console.log(data);},eror: function (er) {console.log(er);}});}</script></head><body><input id="Button1" type="button" value="加載數據" onclick="loadData()"/></body></html>

這段Html代碼說明如下:

對於調用ASPX頁面的靜態方法,需要在將方法名寫在請求的aspx頁面的後面,但不需要圓括號。如:WebForm1.aspx/GetJsonData,WebForm1.aspx是頁面,GetJsonData是後臺要請求的靜態方法。dataType:設置要請求的數據類型,目前已流行JSON數據格式,輕量級,簡單。type:設置HTTP請求的類型,可以是GET或POST,當然也可以是PUT、DELETE等。contentType:返回的內容類型,如果設置的dataType是json,則一定要將contentType設置為:application/json,這樣才能正確返回json數據。success:表示成功請求後返回的回調函數。具有三個參數:data、status、XHR。獲取的數據就在data對象中。error:表示失敗請求後返回的回調函數。一般使用一個參數,用於獲取錯誤信息。查看返回的JSON數據正式在Html頁面上顯示數據之前,我們先測試一下這個GET請求是否成功了,是否能從伺服器上拿取數據。

在運行後的頁面上點擊按鈕,然後打開瀏覽器的控制臺窗口,我們看到,已經有了一個object的對象,其中正好是從資料庫中獲取的數據。

這就是從伺服器端返回的JSON字符串。從結果上看,這一堆JSON字符串是存在d屬性中的。

所以在success回調函數中,可以直接獲取d屬性的值:

success: function (data,status,xhr) {console.log(data.d);},

此時,在上圖中,以鍵值對的形式將數據組織在一起,正是一個JSON格式的數據。

在資料庫的表中,我們也看到與拿到的數據是一樣的。表示使用ajax技術正確在客戶端從伺服器上拿到數據了。

04第四節:將JSON字符串轉換為JSON對象

對於從後臺獲取的一般都是JSON字符串,什麼是JSON字符串呢?就是符合JSON格式的字符串,使用單引號或雙引號括起來的。

如:var b = '{"name":"小強","sex":"男","age":"18"}';

就是JSON字符串。

那什麼是JSON對象呢?

那就是與JavaScript中的object類型的值是一樣的,使用花括號括起來的鍵值對。如:

var person = { "name": "小華", "sex": "女", "age": "28" }console.log(person.name);

可以使用對象.屬性的形式獲取對象中某屬性的值。

對於從伺服器端獲取的都是JSON字符串,那麼在前端使用JS處理時,就需要轉換為JSON對象,以便好處理數據。

使用JSON.parse()方法就可以將JSON字符串轉換為JSON對象。

使用JSON.stringify()方法可以將JSON對象轉換為JSON字符串。

將上面從資料庫中獲取的數據轉換為JSON對象,如下代碼:

var jsonData = JSON.parse(data.d);

非常的簡單,然後輸出結果:

對於這樣的對象,我們再進行處理就容易的多了。

05第五節:將數據呈現在列表中

上面的所有工作都完成之後,我們就可以拿到的數據顯示在Html頁面上了,用戶就可以看到了。

Html+jQuery的完整代碼如下:

<!DOCTYPE html><html><head><title>一都編程,每個知識就是一個案例。</title><script src="jquery-3.3.1.js"></script><script type="text/javascript">function loadData() {var d= $.ajax({url: "WebForm1.aspx/GetJsonData",dataType: "json",type: "GET",//當返回json格式時,contentType不設置也是返不回的。contentType: "application/json",success: function (data, status, xhr) {//將JSON字符串轉換為JSON對象var jsonData = JSON.parse(data.d);var StudentTable = $("#StudentTable");for (var i = 0; i < jsonData.length; i++) {StudentTable.append("<tr><td>" + jsonData[i].AJAXId + "</td><td>" + jsonData[i].AJAXName + "</td></tr>");}console.log(jsonData);},eror: function (er) {console.log(er);}});}</script><style type="text/css">.theader{background-color:#808080;color:#fff;width:200px;text-align:center;}th{width:100px;}tr{text-align:center;}</style></head><body><input id="Button1" type="button" value="加載數據" onclick="loadData()"/><table id="StudentTable" border="1"><tr><th>編號</th><th>姓名</th></tr></table></body></html>

將上面的代碼運行後,並點擊一下「加載數據」按鈕,此時資料庫中的數據就會按表格的形式顯示出來。

此圖表中的數據是從資料庫中獲取的。是動態的數據。通過ajax技術從後臺資料庫中獲取。

因此,我們使用Html+jQuery+Ajax+後臺代碼就可以輕鬆的實現獲取數據的功能,對於一些數據量小的應用程式,使用這種方式是不錯的選擇。

相關焦點

  • 從零做網站開發:基於Flask和JQuery實現表格管理平臺
    搜索JavaPython編程技術公眾號,回復「程式設計師大禮包」,送你一份Java面試題寶典4、查詢數據def query(): sql = 'select * from {0}'.format(tablename) result = cur.execute(sql) return
  • jquery ztree入門 - CSDN
    >《j2ee 簡單網站搭建:(六)使用 hibernate validation 實現 domain 層實體類驗證》《j2ee 簡單網站搭建:(七)使用 shiro 結合 jcaptcha 實現用戶驗證登錄》《j2ee 簡單網站搭建:(八)使用 jquery-validate 實現頁面驗證入門》《j2ee 簡單網站搭建:(九)jquery datatables + jquery
  • Java技能應用之JSON工具包的使用
    Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於個人PC、數據中心、遊戲控制臺、科學超級計算機、行動電話和網際網路,同時擁有全球最大的開發者專業社群。在全球雲計算和移動網際網路的產業環境下,Java更具備了顯著優勢和廣闊前景。因此,Java培訓[1]成為很多想要從事java開發人士的選擇。
  • 基於java的黔南州地區旅遊網站的設計與實現
    MySQL是一種關係資料庫管理系統,關係資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標準化語言。
  • SQL Server應用程式的高級Sql注入
    [概 要] 這篇文章討論常用的"sql注入"技術的細節,應用於流行的Ms IIS/ASP/SQL-Server平臺。這裡探討有關這種攻擊各種可以注入程序訪問數據和資料庫防範的方法。SQL語句可以修改資料庫的結構(用數據定義語言"DDL")和操作資料庫裡的數據(用數據操作語言"DML")。我們在這裡著重討論Transact-SQL(交互式SQL),應用於SQL-Server的SQL一種方言(非標準SQL)。如果攻擊者可以插一系列的SQL語句進入應用程式的數據查詢時,Sql注入攻擊就可能發生。
  • 輕量級的數據交換格式JSON
    JSON定義JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易於閱讀和編寫,同時也易於機器解析和生成。它基於ECMA262語言規範(1999-12第三版)中JavaScript程式語言的一個子集。
  • C Sharp 數據操作系列 - 1. SQL基礎操作
    在技術的演變過程中,為了更快更好的增刪改查,有一些大牛開發出了一系列的ORM框架,比如C#裡最出名的EntityFramework、與Hibernate同源的NHibernate等等。utf8_general_ci; -- 使用utf8這是在開發過程中最常用的創建資料庫方式。
  • SQL Server 2008 數據挖掘的決策樹算法
    【IT168 技術文檔】決策樹算法是由 Microsoft SQL Server Analysis Services 提供的分類和回歸算法,用於對離散和連續屬性進行預測性建模。  對於離散屬性,該算法根據數據集中輸入列之間的關係進行預測。它使用這些列的值(也稱之為狀態)預測指定為可預測的列的狀態。
  • php中的Json是什麼?什麼時候使用Json
    Json是一種在網際網路編程中常用的數據結構,是一種輕量級的數據交換格式,主要用於替代網際網路中使用的xml數據。和xml相比,它更小巧但描述能力卻不差,由於它的小巧所以網絡傳輸數據將減少更多流量,從而加快數據傳輸速度。
  • 西海數據丨推薦 她用Python爬取了去哪兒網,終於不知道去哪兒了
    這種[{x:x,x:x},{x:x,x:x}]格式的數據,是一種json格式的數據,由於具有自我描述性,所以比較通俗易懂,大概可以知道這裡的三個值,前倆個是經緯度,最後一個應該是權重(我猜的)。也就是說,如果我希望將景點的熱門程度生成為熱力圖,我需要得到景點的經緯度,以及它的權重,景點的銷量可以作為權重,並且這個數據應該是json格式的呈現方式。echarts也是一樣滴(*^__^*)。其實這次的爬虫部分是比較簡單的(如果你有跟著我的文爬過網站的話)。
  • Python 連接開放航空交通數據,輕鬆構建航班跟蹤應用!
    第一種就是根據UNIX時間戳格式的時間,或者ICAO24地址來請求指定的航班。第二種就是使用WGS84坐標系統指定的地區,獲取地區內的所有飛機數據。而且,數據訪問可以匿名進行,也可以通過註冊用戶進行。匿名用戶的數據解析度為10秒,註冊用戶為5秒。本文我們使用第二種方式。我們使用最小和最大坐標定義一個地區,然後發送查詢,獲取該地區內的所有飛機數據。
  • sql入門基礎知識(經典)
    收費* Sql server ,微軟 IIS* Mysql,Oracle公司。* 登錄格式:* 指定書寫密碼:mysql -uroot -p1234 回車登錄* 先登錄在書寫密碼:mysql -uroot -p 回車,輸入密碼回車,登錄5.常用命令* 顯示所有的資料庫
  • 2021中信證券總部信息技術崗位校園招聘公告
    部門介紹信息技術中心-IT Center作為公司信息化的設計和實施部門,通過構建、發展全面、自主的信息技術能力,實現公司的全面信息化,保障、服務、推動公司總體發展戰略的實現。
  • zuihou-admin-cloud 2.1 發布,租戶模式支持動態新增數據源 - OS...
    新增認證服務(zuihou-oauth-server:負責登錄、獲取用戶所有權限、資源、菜單等功能)2. 參照SpringSecurity原理,調整 認證服務登錄、刷新token等 接口相關邏輯3. 參照SpringSecurity原理,新增 zuihou-security-starter 模塊,實現 URI權限配置 和 鑑權4.
  • Python大數據分析疫情:如何實現實時數據爬取及Matplotlib可視化
    通過分析url地址、請求方法、參數及響應格式,可以獲取Json數據,注意url需要增加一個時間戳。> 8# 抓取騰訊疫情實時json數據 9url = 'https://view.inews.qq.com/g2/getOnsInfo?
  • BIM數據格式中IFC的標準及格式
    今天我們聊聊BIM數據格式中IFC的標準及格式!傳統工程數據往往零散且片段的儲存在各個不同的地方,數據格式也有各種不同的形式互相搭配,最常見的有圖形(施工圖、大樣圖、斷面圖、流程圖等)、文字(各種說明文件)、數字(各種統計、數量或價格數據),這些數據都隨著工程進行而不斷增加,而數據之間的關聯性也隨之更加複雜。
  • 每個程式設計師都會的 35 個 jQuery 小技巧
    hover'); }); 註:直接使用CSS實現該效果可能是更好的解決方案,但你仍然有必要知道該方法。,它們可以使元素顯示效果更好。但是如果你希望元素顯示時使用***種效果,而消失時使用第二種效果,則可以這麼做: $('.btn').click(function () {   $('.element'