Datatable/Dataset 转 JSON方法

时间:2023-01-03 19:43:11
当数据库表的数据在一般处理程序中查出来需要将这个表数据返回到前台的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方法的更多相关文章

  1. &period;NET DataTable DataSet转json代码

    /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"&gt ...

  2. DataSet转Json 方法

    防止忘记,留着备用 /// <summary> /// DATASET转JSON /// </summary> /// <param name="ds&quot ...

  3. 将DataSet(DataTable&rpar;转换成JSON格式(生成JS文件存储)

    public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...

  4. Asp&period;net 将DataTable 或者DataSet 转换为Json 格式

    Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// &lt ...

  5. Newtonsoft&period;Json高级用法DataContractJsonSerializer&comma;JavaScriptSerializer 和 Json&period;NET即Newtonsoft&period;Json datatable&comma;dataset&comma;modle&comma;序列化

    原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而 ...

  6. Newtonsoft&period;Json高级用法&comma;json序列号&comma;model反序列化&comma;支持序列化和反序列化DataTable&comma;DataSet&comma;Entity Framework和Entity&comma;字符串

    原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口 ...

  7. DataTable 转换成 Json的3种方法

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

  8. 靠谱的datatable转json方法

    今天有之前同事问我要datatable转json的方法,以前自己也弄过,但感觉网上有很多不靠谱的方法.所以自己在博客里记录一个,当然也是网上找的,但是这个靠谱一点,起码可以用不会报错,所以叫他靠谱的d ...

  9. dataTable&sol;dataSet转换成Json格式

    using System.Text;using System.Collections.Generic; 1)dataTable转Json(表格有名称:dt.TableName) public stat ...

随机推荐

  1. Android -- 获取网络数据并将数据存到本地数据库中

    public static final int downloadDone = 1; // 用户model数组 ArrayList<Loginer> loginers = new Array ...

  2. 详解mysql如何配置远程链接,解决各种连接问题

    在服务器上面我们经常需要去使用mysql,有些童鞋刚刚配置好了服务器,想在本地的一些图形化软件去连接mysql得到更直观的表格显示,此时很可能不允许连接,为了探究为什么连接失败,在这里我会对mysql ...

  3. SQL函数

    1,字符串截取拼接 CONCAT(),'****');SUBSTRING_INDEX(c.context,'}',1);SUBSTRING_INDEX(a.task_context,':',-1) a ...

  4. Oracle 查询性能优化实践

      1.索引使用原则   不要对索引使用全模糊,但是 LIKE 'asdf%'是可以的,即不要Contains,可用StartWith 不要对索引进行函数,表达式操作,或者使用is null判断,否则 ...

  5. linux各种命令

    命令  [选项]  [参数] read  -t  30    -p   "Please input a num: "   num 功能:将键盘输入的数赋予num ps   aux  ...

  6. Hadoop could not find or load main class

    Error: Could not find or load main class <class_name> 我在尝试使用hadoop definitive guide的代码做练习时,遇到一 ...

  7. linux第8天 connect强化

    今天没有系统学习什么新知识,就是把以前学到的知识复习了一下,其中有几点值得注意 connect(fd, (struct sockaddr *)addr, sizeof(struct sockaddr_ ...

  8. C&plus;&plus; STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN&period;NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  9. 计算机网络之应用层&lowbar;part -1

    应用层协议原理 一.网络应用程序体系结构 网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种: 1.客户--服务器体系结构: 有一个总是打开的主机(称为 ...

  10. pig的grunt中shell命令不稳定,能不用尽量不用

    shell命令:mv a b   将文件a改名为b, 可如果b已经存在,比如/test文件下有a和b两个文件,执行mv a b后,b被覆盖的了.也就是/test文件下只有a. 但是mv命令在pig的g ...