當數據庫表的數據在一般處理程序中查出來需要將這個表數據返回到前臺的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 = 0; i < _dt.Rows.Count; i++){GridJson += "{";string strTemp = "";for (int j = 0; j < _dt.Columns.Count; j++){strTemp = (j == _dt.Columns.Count - 1 ? "" : ",");GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString().Trim() + "\"" + strTemp;}strTemp = (i == _dt.Rows.Count - 1 ? "}" : "},");GridJson += strTemp;}GridJson += "]}";// Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "123", GridJson); }catch (Exception ee){Rev_DBPublic.Rev_WriteLog.WriteLog("PubErrorLogPath", "ToDataGrid" + "123", 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 == 0){return dt;}DataTable returnValue = null;DataColumn dc = new DataColumn("rowindex", Type.GetType("System.Int32"));dt.Columns.Add(dc);for (int i = 0; i < dt.Rows.Count; i++){dt.Rows[i]["rowindex"] = i;}int _start = (pageIndex - 1) * 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 = 0; i < _dt.Rows.Count; i++){GridJson += "{";string strTemp = "";for (int j = 0; j < _dt.Columns.Count; j++){strTemp = (j == _dt.Columns.Count - 1 ? "" : ",");GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString() + "\"" + strTemp;}strTemp = (i == _dt.Rows.Count - 1 ? "}" : "},");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 = 0; i < _dt.Rows.Count; i++){GridJson += "{";string strTemp = "";for (int j = 0; j < _dt.Columns.Count; j++){strTemp = (j == _dt.Columns.Count - 1 ? "" : ",");GridJson += "\"" + _dt.Columns[j].ColumnName.ToString() + "\":\"" + _dt.Rows[i][j].ToString() + "\"" + strTemp;}strTemp = (i == _dt.Rows.Count - 1 ? "}" : "},");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 = 0; i < dt.Rows.Count; i++){jsonBuilder.Append("{");for (int j = 0; 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 - 1, 1);jsonBuilder.Append("},");}jsonBuilder.Remove(jsonBuilder.Length - 1, 1);if (dt.Rows.Count > 0){jsonBuilder.Append("]");}return jsonBuilder.ToString();}#endregion dataTable轉換成Json格式 }
?
?
?
?