当数据库表的数据在一般处理程序中查出来需要将这个表数据返回到前台的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

Datatable/Dataset 转 JSON方法相关推荐

  1. badatatable转成json_C# DataTable 转换成JSON数据 三种方法

    在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数 ...

  2. dataset转换json格式

    转换json方法 public static string DataToJson(DataSet dt) { StringBuilder jsonBuilder = new StringBuilder ...

  3. C#DataTable DataSet DataRow区别详解

    DataSet 是C#中用来存储数据库数据的.其实,它的作用是在内存中模拟数据库.我们现实生活中的数据库从大到小的基本结构类似于:数据库实例,表,列,行.在C#语言中,我们在内存中也模拟出了一个这样的 ...

  4. TensorFlow数据读取方式:Dataset API,以及如何查看dataset:DatasetV1Adapter的方法

    TensorFlow数据读取方式:Dataset API Datasets:一种为TensorFlow 模型创建输入管道的新方式.把数组.元组.张量等转换成DatasetV1Adapter格式 Dat ...

  5. Json学习总结(1)——Java和JavaScript中使用Json方法大全

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript ...

  6. JSON基础与数据解析、JSON方法、AJAX初识

    JSON JavaScript Object Notation js对象标记 是对象,是轻量级数据交互的格式,不能有方法 它基于 JavaScript 语法,但与之不同:JavaScript不是JSO ...

  7. python读取json并列_python解析含有重复key的json方法

    python自带的json包能够方便的解析json文本,但是如果json文本中包含重复key的时候,解析的结果就是错误的.如下为例 {"key":"1", &q ...

  8. js 转php json string,JS里字符串转json方法总结

    这次给大家带来JS里字符串转json方法总结,JS里字符串转json的注意事项有哪些,下面就是实战案例,一起来看一下. 第一种方式: 使用js函数eval(); testJson=eval(testJ ...

  9. MVC Json方法里的一个坑

    MVC Controller类下面有这样一个方法 //// Summary:// Creates a System.Web.Mvc.JsonResult object that serializes ...

最新文章

  1. 华为发布面向2025十大趋势
  2. Oracle数据库游标在存储过程中的使用
  3. miniUI怎么显示HTML显示整数,MINIUI后台获取数据
  4. Android camera开发总结
  5. python 日志不会按照日期分割_python 按照日期切分大日志文件(重点)和按照指定大小切分日志文件...
  6. [HNOI2012]三角形覆盖问题
  7. 轻量化、松耦合的手持RGB-D室内环境实时重建系统
  8. c语言山东科技大学答案oj,山东科技大学oj部分题目记答案.doc
  9. Oozie安装ExtJs教程
  10. Android实现友盟分享小程序
  11. caffe 基础教程
  12. P1505 [国家集训队]旅游 (树链剖分)
  13. Apache配置反向代理
  14. 2023年最新谷歌Google帐号Gmail邮箱账号怎么注册成功的方法与教程?
  15. 软件测试 (4)Linux命令
  16. 九八寒露——HRBUST OJ 1269 小把戏
  17. UE4使用OpenCV插件调用电脑摄像头
  18. 强化学习的10个现实应用
  19. 杰理之SD卡 MMC卡 U盘 假U盘【篇】
  20. adams2015怎么把工具栏打开_剪映怎么玩的更好?教你0基础也能秒会的剪映三大进阶级功能!...

热门文章

  1. docker --- 镜像、容器
  2. 算法 --- 希尔排序、归并排序、快速排序的js实现
  3. ES6-16 WeakMap与WeakSet、proxy与reflect
  4. Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...
  5. 旅游行业春节档期的大数据营销
  6. 谈谈Java基础数据类型
  7. iOS开发CoreAnimation解读之三——几种常用Layer的使用解析
  8. ASP.NET AJAX(服务器回调)
  9. 20个简约风格网站设计作品欣赏
  10. Visual C++ 时尚编程百例009(响应键盘)