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

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

  2. DataSet转Json 方法

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

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

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

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

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

  5. Newtonsoft.Json高级用法DataContractJsonSerializer,JavaScriptSerializer 和 Json.NET即Newtonsoft.Json datatable,dataset,modle,序列化

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

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

    原文地址: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/dataSet转换成Json格式

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

随机推荐

  1. mysql的故事

    所有的条件都分开理解,命令之间没有包含吗?

  2. logback

    logback:入口: private final static Logger logger = org.slf4j.LoggerFactory.getLogger(ServiceTest.class ...

  3. C#:String.Format数字格式化输出 {0:N2} {0:D2} {0:C2}等等

    int a = 12345678; //格式为sring输出//   Label1.Text = string.Format("asdfadsf{0}adsfasdf",a); / ...

  4. 压测如何观测jvm,就是使用jmx来实现jvm监控

    jps.jstack.jmap.jhat.jstat.hprof 基于jmx可以开发web版本,方便压测的时候观测jvm以及线程的信息 ================================ ...

  5. Esfog_UnityShader教程_NormalMap法线贴图

    咳咳,好久没有更新了,一来是这段时间很忙很忙,再来就是自己有些懒了,这个要不得啊,赶紧补上.在前面我们已经介绍过了漫反射和镜面反射,这两个是基本的光照类型,仅仅依靠它们就想制作出精美的效果是远远不够的 ...

  6. 【转】Hibernate级联注解CascadeType参数详解

    cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新.若对触发器来修改或删除关联表相记录,必须要删除对应的关联表信息,否则,会存有脏数 ...

  7. 怎样安装Ubuntu操作系统

    (转载自:http://jingyan.baidu.com/article/ff42efa9423991c19e22020d.html) 准备工作 1. 一台普通电脑(装没装操作系统无所谓),保证电脑 ...

  8. 常用的.Net 知识点

    1.Replace C#:(using System.Text.RegularExpressions;) string txt = Regex.Replace(txtLog.Text.ToString ...

  9. 十一、Manipulators

    1. Manipulators是可以用三维进行绘制的的节点,可以将用户行为值化,对其他节点的属性进行modify. 2. 属性值可以通过Channel Box 和Graph Editor进行修改.同其 ...

  10. MFC 自绘按钮 消息响应

    单检测到按下消息时,发送一个消息 m_pParent->PostMessage(WM_COMMAND, IDC_BUTTON1); 然后再在消息映射里建立映射. ON_COMMAND(IDC_B ...