赞
踩
前端做表单或者其他什么功能的时候,需要在数据库中调取大量数据,并且将这些数据封装成JSON格式。这里给出实现该功能的比较重要的几个代码片段。
void ReturnData() { //获取数据库中的数据 string sql = "select * from UserInfo "; DataSet ds = ReturnDataSet(sql, "Usertable"); //将数据传给封装成JSON的方法 string results = DataToJson(ds.Tables["Usertable"], ds.Tables["Usertable"].Rows.Count); //将最终得到的JSON传递给前端 HttpContext.Current.Response.ContentType = "application/json"; HttpContext.Current.Response.Write(results); HttpContext.Current.Response.End(); }
从数据库中读取数据并将数据返回到表中的具体操作如下:
public static DataSet ReturnDataSet(string sqlstr, string tablename)//返回DataSet、Datatable
{
conn = MyConnection();
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlstr, conn);
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
DataSet ds = new DataSet();
sda.Fill(ds,tablename);
return ds;
}
封装成JSON的具体操作如下:
string DataToJson(DataTable dt, int count) { StringBuilder sbjson = new StringBuilder(); sbjson.Append("{"); sbjson.Append("\"total\":" + count + ",\"rows\":["); if (dt != null) { for (int i = 0; i < dt.Rows.Count; i++) { if (i > 0) { sbjson.Append(","); sbjson.Append("{"); foreach (DataColumn dc in dt.Columns) { if (dt.Columns.IndexOf(dc) > 0) { sbjson.Append(","); sbjson.Append("\"" + dc.ColumnName + "\":\"" + dt.Rows[i][dc.ColumnName].ToString().Trim() + "\""); } else { sbjson.Append("\"" + dc.ColumnName + "\":\"" + dt.Rows[i][dc.ColumnName].ToString().Trim() + "\""); } } sbjson.Append("}"); } else { sbjson.Append("{"); foreach (DataColumn dc in dt.Columns) { if (dt.Columns.IndexOf(dc) > 0) { sbjson.Append(","); sbjson.Append("\"" + dc.ColumnName + "\":\"" + dt.Rows[i][dc.ColumnName].ToString().Trim() + "\""); } else { sbjson.Append("\"" + dc.ColumnName + "\":\"" + dt.Rows[i][dc.ColumnName].ToString().Trim() + "\""); } } sbjson.Append("}"); } } } sbjson.Append("]}"); return sbjson.ToString(); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。