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 = ; i < _dt.Rows.Count; i++)
{
GridJson += "{";
string strTemp = "";
for (int j = ; j < _dt.Columns.Count; j++)
{
strTemp = (j == _dt.Columns.Count - ? "" : ",");
GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString().Trim() + "\"" + strTemp;
}
strTemp = (i == _dt.Rows.Count - ? "}" : "},");
GridJson += strTemp;
}
GridJson += "]}";
// Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "123", GridJson);
}
catch (Exception ee)
{
Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "", 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 == )
{
return dt;
}
DataTable returnValue = null; DataColumn dc = new DataColumn("rowindex", Type.GetType("System.Int32"));
dt.Columns.Add(dc); for (int i = ; i < dt.Rows.Count; i++)
{
dt.Rows[i]["rowindex"] = i;
} int _start = (pageIndex - ) * 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 = ; i < _dt.Rows.Count; i++)
{
GridJson += "{";
string strTemp = "";
for (int j = ; j < _dt.Columns.Count; j++)
{
strTemp = (j == _dt.Columns.Count - ? "" : ",");
GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString() + "\"" + strTemp;
}
strTemp = (i == _dt.Rows.Count - ? "}" : "},");
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 = ; i < _dt.Rows.Count; i++)
{
GridJson += "{";
string strTemp = "";
for (int j = ; j < _dt.Columns.Count; j++)
{
strTemp = (j == _dt.Columns.Count - ? "" : ",");
GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString() + "\"" + strTemp;
}
strTemp = (i == _dt.Rows.Count - ? "}" : "},");
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 = ; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = ; 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 - , );
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - , );
if (dt.Rows.Count > )
{
jsonBuilder.Append("]");
}
return jsonBuilder.ToString();
} #endregion dataTable转换成Json格式
}
Datatable/Dataset 转 JSON方法的更多相关文章
- .NET DataTable DataSet转json代码
/// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...
- DataSet转Json 方法
防止忘记,留着备用 /// <summary> /// DATASET转JSON /// </summary> /// <param name="ds" ...
- 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)
public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...
- Asp.net 将DataTable 或者DataSet 转换为Json 格式
Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// < ...
- Newtonsoft.Json高级用法DataContractJsonSerializer,JavaScriptSerializer 和 Json.NET即Newtonsoft.Json datatable,dataset,modle,序列化
原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而 ...
- Newtonsoft.Json高级用法,json序列号,model反序列化,支持序列化和反序列化DataTable,DataSet,Entity Framework和Entity,字符串
原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口 ...
- DataTable 转换成 Json的3种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...
- 靠谱的datatable转json方法
今天有之前同事问我要datatable转json的方法,以前自己也弄过,但感觉网上有很多不靠谱的方法.所以自己在博客里记录一个,当然也是网上找的,但是这个靠谱一点,起码可以用不会报错,所以叫他靠谱的d ...
- dataTable/dataSet转换成Json格式
using System.Text;using System.Collections.Generic; 1)dataTable转Json(表格有名称:dt.TableName) public stat ...
随机推荐
- Parallel类实现并行计算
https://msdn.microsoft.com/zh-cn/ff652648.aspx 图像处理——并行计算的应用实例 http://blog.csdn.net/bitfan/article/d ...
- java.lang.ArrayIndexOutOfBoundsException: 1
数组越界 但是我这个也不是这个原因: 在CuiShouDetail.jsp 里,如果 添加上 QiTaDianHua,如果为空就会报错,别的都么有问题null,或者是空格,或者是有数据 1. Stri ...
- [SQL]查询表里的字段名
Select Name from syscolumns Where ID=OBJECT_ID('表名') select * from information_schema.tables WHERE T ...
- 尚学堂Spring视频教程(七):AOP XML
此处省略N个字.... 直接看下面 推荐链接: Spring Aop实例之xml配置
- ebs双节点webservice部署问题
出现异常: oracle.webservices.mdds.MddsException: java.io.IOException: Failed to read WSDL from http://eb ...
- MYSQL中UNIX时间戳与日期的转换
select FROM_UNIXTIME(1464973385.641,'%Y-%m-%d %H:%i:%s'); select UNIX_TIMESTAMP('2016-06-04 01:03:05 ...
- IOS 本地通知推送消息
在现在的移动设备中,好多应用性的APP都用到了推送服务,但是有好多推送的内容,比如有的只是单纯的进行推送一个闹钟类型的,起了提醒作 用,有的则是推送的实质性的内容,这就分为推送的内容来区别用什么推送, ...
- 微信nickname乱码及mysql编码格式设置(utf8mb4)
微信nickname乱码及mysql编码格式设置(utf8mb4) 今天在写微信公众平台项目时,写到一个用户管理模块,接口神马的已经调试好了,于是将用户从微信服务器保存到本地数据库,发现报错: jav ...
- 【Python】supervisor安装和管理celery
参考:http://blog.csdn.net/wawa8899/article/details/52743861 参考:http://www.cnblogs.com/mountaingeek/p/5 ...
- VS2013配置WTL91_5321_Final
网上关于WTL的文章,尤其是中文的文章不多,根据收集的资料整理出了VS2013安装WTL的方法. .下载.文件很小的,地址:http://sourceforge.net/projects/wtl/fi ...