当数据库表的数据在一般处理程序中查出来需要将这个表数据返回到前台的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. [SQL]查询数据库里都有哪些自己建的表

    方法一:SELECT * FROM FTCE_ACCS.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE'----------------- ...

  2. Python format格式化输出

    http://www.jb51.net/article/63672.htm 推荐参考 >>> '{0},{1}'.format('hello','python') 'hello,py ...

  3. 使用nginx部署Yii 2.0\yii-advanced-app-2.0.6

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  4. C# 打开指定目录并定位到文件

    private void OpenFolderAndSelectFile(String fileFullName) { System.Diagnostics.ProcessStartInfo psi ...

  5. Can't use Subversion command line client:svn

    在Intellij IDEA里checkout东西时出先这个错误提示:Can't use Subversion command line client:svn Subversion command l ...

  6. Effective c++

    static 声明在堆上申请静态存储 对于局部变量,将存储方式改为静态存储 对于全局变量,将连接方式局限在文件内 类中static变量:属于整个类,独立存储,没有this指针 inline inlin ...

  7. oracle_exp_query_where_clause

    每次都忘记这个斜线,记录一下 exp img/123@orclxxx file=d:\bbb.dmp table=(ccc_tab) query=\"where id > 999\&q ...

  8. 永久修改 CMD 的 PROMPT 显示结果/给cmd命令显示加上运行时间

    1.环境 windows10 系统 2.打开 cmd ,快捷键 Ctrl + x 然后a 3.输入 REG ADD "HKLM\SYSTEM\CurrentControlSet\Contro ...

  9. [转]常用的快速Web原型图设计工具

    转自大神: http://www.cnblogs.com/lhb25/archive/2009/04/25/1443254.html 做产品原型是非常重要的一个环节,做产品原型就会用使用各式各样的工具 ...

  10. NK3C:异常处理(前端)

    前端的提示有些也不是很规范,主要体现如下: 1.ResultInfo的返回值,false的情况下,未做处理: 2.ResultInfo的返回值,false的情况下,做了其他操作,未提示错误:(虽然没报 ...