当数据库表的数据在一般处理程序中查出来需要将这个表数据返回到前台的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. CentOS7 配置阿里云yum源

    1)下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo 2)备份并替换系统的repo文件 cp Centos-7.repo /etc/ ...

  2. 事实证明,abstract类除了不能用new实例化和类没什么区别

    abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口.虽然abstract类不 ...

  3. jQuery MiniUI开发系列之:数据验证

    在开发应用系统界面时,往往需要进行很多.复杂的数据验证,当填写的数据符合规定,才能提交保存. jQuery MiniUI提供了比较完美的表单数据验证和错误显示的方式. 常见的表单控件,都有一个验证事件 ...

  4. sqlserver ,left join 不仅可以join表,还可以是一个结果集

    SELECT MA.NAME AS MakeName , M.ID AS ModelId , M.Name AS ModelName , M.Warranty AS ModelWarranty , S ...

  5. SQL Server 2008 R2企业版开发版等版本下载 (转载)

    一. 简体中文 1. SQL Server 2008 R2 Developer (x86, x64, ia64) - DVD (Chinese-Simplified) File Name: cn_sq ...

  6. C语言读写文件

    对文件的读和写是最常用的文件操作.在C语言中提供了多种文件读写的函数: 字符读写函数  :fgetc和fputc 字符串读写函数:fgets和fputs 数据块读写函数:freed和fwrite 格式 ...

  7. wxWidgets编译安装gtk问题的解决办法

    下面是google到的一篇博文.我在centos5.3中想安装amule,结果编译时,提示没找到wxWidgets退出了.只好又去下了wxWidgets,还是源码,需要编译.编译中出现和下面这位网友一 ...

  8. IOS 中列表的TableView 详解,常用方法整理

    一.创建一个列表,不管代码还是nib拖拉,在nib创建的时候,记得加他的二个代理 (UITableViewDelegate UITableViewDataSource) 代码创建的话,需要关联他的代理 ...

  9. AngularJS-Uncaught Error: [$injector:modulerr]

    我在实验AngularJS-系统代码的配置和翻译的时候遇到了如下图所示的错误: 在JS编程的时候会经常遇到,XXX不是一个函数,XXX未定义等等错误,只要看到和自己编写的代码语句相关的东西直接找到就能 ...

  10. BroadCast小结

    1.BroadCast注册方式 静态注册:即在AndroidManifest.xml 文件中定义 <receiver android:name=".BroadCastB"&g ...