Datatable/Dataset 轉 JSON方法

當數據庫表的數據在一般處理程序中查出來需要將這個表數據返回到前臺的jquery中,需要將數據拼成json字符串形式,
這里是將數據庫數據查出放在Datatable中,然后在一般處理程序中將datatable轉成json的幾個方法,根據不同的情況調用不同的方法(Dataset集合中的數據也可以遍歷每一個索引上的datatable調用此方法)。


using
System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Text;/// <summary> ///DataHelper 的摘要說明 /// </summary> public class DataHelper {public DataHelper(){////TODO: 在此處添加構造函數邏輯// }#region DataTable轉Json/// <summary>/// DataTable轉Json for DataGrid/// </summary>/// <param name="_dt"></param>/// <returns></returns>public static string ToDataGrid(DataTable _dt){string GridJson = string.Empty;try{GridJson = "{\"total\":" + _dt.Rows.Count + ",\"rows\":[";for (int i = 0; i < _dt.Rows.Count; i++){GridJson += "{";string strTemp = "";for (int j = 0; j < _dt.Columns.Count; j++){strTemp = (j == _dt.Columns.Count - 1 ? "" : ",");GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString().Trim() + "\"" + strTemp;}strTemp = (i == _dt.Rows.Count - 1 ? "}" : "},");GridJson += strTemp;}GridJson += "]}";// Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "123", GridJson); }catch (Exception ee){Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "123", GridJson + "Err:" + ee.Message);}return GridJson;}#endregion/// <summary>/// 將Datatable 中得數據行進行分頁,并將頁內數據返回/// </summary>/// <param name="dt"></param>/// <param name="pageSize">行數</param>/// <param name="pageIndex">第幾頁</param>/// <returns></returns>public static DataTable DataTableToPager(DataTable dt, int pageSize, int pageIndex){if (dt == null || dt.Rows.Count == 0){return dt;}DataTable returnValue = null;DataColumn dc = new DataColumn("rowindex", Type.GetType("System.Int32"));dt.Columns.Add(dc);for (int i = 0; i < dt.Rows.Count; i++){dt.Rows[i]["rowindex"] = i;}int _start = (pageIndex - 1) * pageSize;int _end = _start + pageSize;DataView dv = dt.DefaultView;dv.RowFilter = string.Format("rowindex>={0} and rowindex<{1}", _start, _end);returnValue = dv.ToTable();return returnValue;}#region DataTable轉Json/// <summary>/// DataTable轉Json for DataGrid/// </summary>/// <param name="_dt"></param>/// <returns></returns>public static string ToDataGridPage(DataTable _dt, int _row){string GridJson = "{\"total\":" + _row + ",\"rows\":[";for (int i = 0; i < _dt.Rows.Count; i++){GridJson += "{";string strTemp = "";for (int j = 0; j < _dt.Columns.Count; j++){strTemp = (j == _dt.Columns.Count - 1 ? "" : ",");GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString() + "\"" + strTemp;}strTemp = (i == _dt.Rows.Count - 1 ? "}" : "},");GridJson += strTemp;}GridJson += "]}";// Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "123", GridJson);return GridJson;}#endregion#region DataTable轉Json/// <summary>/// DataTable轉Json for DataGrid/// </summary>/// <param name="_dt"></param>/// <returns></returns>public static string ToDataGridPage(DataTable _dt, int _row, int page, int records){string GridJson = "{\"page\":" + page + ",\"total\":" + _row + ",\"records\":" + records + ",\"rows\":[";for (int i = 0; i < _dt.Rows.Count; i++){GridJson += "{";string strTemp = "";for (int j = 0; j < _dt.Columns.Count; j++){strTemp = (j == _dt.Columns.Count - 1 ? "" : ",");GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString() + "\"" + strTemp;}strTemp = (i == _dt.Rows.Count - 1 ? "}" : "},");GridJson += strTemp;}GridJson += "]}";// Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "123", GridJson);return GridJson;}#endregion#region dataTable轉換成Json格式/// <summary> /// dataTable轉換成Json格式 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static string DataTable2Json(DataTable dt){StringBuilder jsonBuilder = new StringBuilder();jsonBuilder.Append("[");for (int i = 0; i < dt.Rows.Count; i++){jsonBuilder.Append("{");for (int j = 0; j < dt.Columns.Count; j++){jsonBuilder.Append("\"");jsonBuilder.Append(dt.Columns[j].ColumnName);jsonBuilder.Append("\":\"");jsonBuilder.Append(dt.Rows[i][j].ToString());jsonBuilder.Append("\",");}jsonBuilder.Remove(jsonBuilder.Length - 1, 1);jsonBuilder.Append("},");}jsonBuilder.Remove(jsonBuilder.Length - 1, 1);if (dt.Rows.Count > 0){jsonBuilder.Append("]");}return jsonBuilder.ToString();}#endregion dataTable轉換成Json格式 }

?

?

?

?

轉載于:https://www.cnblogs.com/zyg316/p/5974167.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270699.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫:SQLServer數據庫備份方式介紹

今天小編給大家梳理一下數據庫備份的相關知識&#xff0c;希望對大家能有所幫助&#xff01;1、完整備份完整備份相當于針對整個數據庫備份&#xff0c;包含數據庫的全部內容。數據庫完整備份可以將數據庫的所有內容備份為一個.Bak文件。后續可以通過該備份文件在本機或者拷貝到…

注入雙括號報錯注入_SQL手動注入:sqlilabs(less110)

種一棵樹最好的時間是10年前&#xff0c;其次是現在。忘了是誰前言說實話&#xff0c;由于前段時間學 python &#xff0c;對于 OWASP TOP10 漏洞的學習都有所落下&#xff0c;雖然現在也在慢慢復習當中&#xff0c;但是今晚談及的 SQL 注入漏洞手動注入和自動化(sqlmap)注入的…

try、catch、finally用法總結

一、異常的處理&#xff1a;抓拋模型過程一&#xff1a;"拋"&#xff1a;程序在正常執行的過程中&#xff0c;一旦出現異常&#xff0c;就會在異常代碼處生成一個對應異常類的對象。并將此對象拋出。一旦拋出對象以后&#xff0c;其后的代碼就不再執行。關于異常對象…

markdown學習/mou

markdown編輯器mou markdown編輯器的使用很簡單&#xff0c;mac平臺選擇課 MOU 這款比較輕的客戶端。 使用也很方便&#xff0c;打開軟件&#xff0c;->helo->mou help 就有各種示例&#xff0c;照葫蘆畫瓢。 有些關鍵字需要轉義,使用的時候要注意&#xff0c;比如插入一…

硬件知識:內存條出現故障的解決方案!

“電腦不時的突然出現藍屏”&#xff0c;“開機之后毫無規律的死機”&#xff0c;“開不了機&#xff0c;一開機就出現嘶鳴聲”&#xff0c;如果你的電腦出現了以上情況&#xff0c;就是你的內存兼容性出了問題&#xff0c;那么這種故障該如何解決呢&#xff1f;下面&#xff0…

api zabbix 拓撲圖 獲取_zabbix網絡拓撲圖配置-Maps(示例代碼)

zabbix network map”可以簡單的理解為動態網絡拓撲圖&#xff0c;可以針對業務來配置zabbix map&#xff0c;通過map可以了解應用的整體狀況&#xff1a;服務器是否異常、網絡是否有故障、應用當前什么狀態。如果你不需要這些東西&#xff0c;至少你可以通過network map繪制一…

.NET 面試題(2)

61、Application 、Cookie和 Session 兩種會話有什么不同&#xff1f; 1.Application 儲存在服務端&#xff0c;沒有時間限制&#xff0c;服務器關閉即銷毀&#xff08;前提是自己沒寫銷毀方法&#xff09; 2.Session 儲存在服務端&#xff0c;客戶端&#xff08;瀏覽器&#x…

盤點程序員必備的專業術語,值得看一看

英文縮寫 API 應用程序接口&#xff08;英語&#xff1a;Application Programming Interface&#xff0c;簡稱&#xff1a;API&#xff09;&#xff0c;又稱為應用編程接口&#xff0c;就是軟件系統不同組成部分銜接的約定。由于近年來軟件的規模日益龐大&#xff0c;常常需要把…

app上線發布流程_APP上線發布流程

上線流程上線流程的主要步驟在上線之前對程序進行內存動態和靜態分析&#xff0c;注意啟動圖的屏幕適配&#xff0c;不然會自動拉升屏幕&#xff0c;使得屏幕自動適配失效生成cer證書&#xff1a;cer是一個跟電腦相關聯的證書文件&#xff0c;讓電腦具備真機調試的功能要借助CS…

java.io.IOException: Broken pipe 的異常處理

斷開的管道 java.io.IOException: Broken pipe 解決方法 一、Broken pipe產生原因分析 1.當訪問某個服務突然服務器掛了&#xff0c;就會產生Broken pipe; 2.客戶端讀取超時關閉了連接&#xff0c;這時服務器往客戶端再寫數據就發生了broken pipe異常&#xff01; 二、方案…

IDEA中安裝配置Jrebel熱部署插件用法筆記

今天給大家介紹一下IDEA中安裝配置Jrebel熱部署插件用法&#xff0c;希望對大家能有所幫助&#xff01;1、Jrebel插件介紹JRebel屬于一款JAVA虛擬機插件&#xff0c;它可以讓你的項目在不需要進行重新編譯的情況下&#xff0c;就可以實時看到代碼的變化對項目的影響。這對我們開…

集成支付寶錢包支付iOS SDK的方法與經驗

下載 首先&#xff0c;你要想找到這個SDK&#xff0c;都得費點功夫。現在的SDK改名叫移動支付集成開發包了。 https://b.alipay.com/order/productDetail.htm?productId2013080604609654&tabId4#ps-tabinfo-hash Baidu和Googlep排在前面的支付寶開放平臺&#xff0c;里面的…

zabbix 監控項自動發現過濾_【Zabbix監控教程】LLD低級別自動發現配置教程

低級別自動發現簡稱LLD&#xff0c;使用低級別自動發現可以實現根據Agent的實際情況去自動創建監控項&#xff0c;適用于配置不一的環境。比如A主機有3塊硬盤&#xff0c;B主機有5塊硬盤&#xff0c;如果不使用LLD的話就需要人肉去為每個硬盤創建監控項。而有了LLD就可以實現自…

Spring Boot單元測試報錯java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]

一&#xff1a;運行test類方法時候報錯 報錯 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify BootstrapWiths value attribute or make the default bootstrapper class available.at org.springframework.test.context.BootstrapU…

PHP底層原理分析和底層擴展編寫

運行原理 http://www.phpchina.com/article-40203-1.htmlPHP底層開發 可以理解為就是C的開發&#xff0c;那么簡單地說如果我們要查看某個PHP函數的底層實現怎么看呢&#xff1f;需要PHP源碼包&#xff1a;http://www.php.net/downloads.php主要目錄是Zend 和ext(寫擴展的目錄…

硬件知識:DP接口和HDMI接口對比,看完你就懂了

目錄 一、DP接口 二、HDMI接口 三、總結 電腦顯示器高清傳輸通過會用到兩個接口&#xff0c;就是DP接口和HDMI接口&#xff0c;今天電腦學習小編帶大家對比一下這兩個接口。 一、DP接口 DisplayPort縮寫DP&#xff0c;是一個由PC及芯片制造商聯盟開發&#xff0c;視頻電子標準協…

文治者必有武備不然長大了挨欺負_【博古齋·六月春拍】人文事者必有武備

原標題&#xff1a;【博古齋六月春拍】人文事者必有武備上海博古齋 2017年春季藝術品拍賣會6月24日 中國書畫 文房雅玩6月25日 古籍善本文獻資料上海大劇院八樓宴會廳(上海市黃陂北路200號A1門入口)圖錄已寄出&#xff0c;請各位藏友注意查收人文事者必有武備LOT 1649 武備志二…

@Transactional 使用

1 .添加位置 1&#xff09;接口實現類或接口實現方法上&#xff0c;而不是接口類中。 2&#xff09;訪問權限&#xff1a;public 的方法才起作用。Transactional 注解應該只被應用到 public 方法上&#xff0c;這是由 Spring AOP 的本質決定的。 系統設計&#xff1a;將標簽放…

SpringBoot集成JPA用法筆記

今天給大家整理SpringBoot集成JPA用法。希望對大家能有所幫助&#xff01;搭建SpringBoot項目新建配置文件 application.ymlserver: port: 8090 spring: #通用的數據源配置datasource: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useSSLf…

【轉】有的共享軟件賺了一百萬美元,而為什么你沒有?我的軟件推廣成功之路...

有的共享軟件賺了一百萬美元&#xff0c;而為什么你沒有&#xff1f; 轉自&#xff1a;http://blog.csdn.net/wangjiwei2010/article/details/1267044 譯&#xff1a;DreamGoal 原作&#xff1a;Steve Pavlin 幾個月以前&#xff0c;我決定對共享軟件業進行一項非正式的長期研…