C#在里面Datatable转换为Json的5代码示例

        /// <summary>
/// Datatable转换为Json
/// </summary>
/// <param name="table">Datatable对象</param>
/// <returns>Json字符串</returns>
public static string ToJson(DataTable dt)
{
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
DataRowCollection drc = dt.Rows;
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
jsonString.Append("},");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
}
/// <summary>
/// 格式化字符型、日期型、布尔型
/// </summary>
/// <param name="str"></param>
/// <param name="type"></param>
/// <returns></returns>
private static string StringFormat(string str, Type type)
{
if (type == typeof(string))
{
str = String2Json(str);
str = "\"" + str + "\"";
}
else if (type == typeof(DateTime))
{
str = "\"" + str + "\"";
}
else if (type == typeof(bool))
{
str = str.ToLower();
}
else if (type != typeof(string) && string.IsNullOrEmpty(str))
{
str = "\"" + str + "\"";
}
return str;
}
/// <summary>
/// 过滤特殊字符
/// </summary>
/// <param name="s">字符串</param>
/// <returns>json字符串</returns>
private static string String2Json(String s)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.Length; i++)
{
char c = s.ToCharArray()[i];
switch (c)
{
case '\"':
sb.Append("\\\""); break;
case '\\':
sb.Append("\\\\"); break;
case '/':
sb.Append("\\/"); break;
case '\b':
sb.Append("\\b"); break;
case '\f':
sb.Append("\\f"); break;
case '\n':
sb.Append("\\n"); break;
case '\r':
sb.Append("\\r"); break;
case '\t':
sb.Append("\\t"); break;
default:
sb.Append(c); break;
}
}
return sb.ToString();
}

<2>

//从数据库里查询出省名
var sql = "select top 35 locid,locname,parentid from location where loctype=1";
var dt_pro = SQLHelper.Get_DataTable(sql, SQLHelper.GetCon(), new Dictionary<string, DBParam>());
//将dt_pro这个DataTable转换成json
var tt_pro = ToJson(dt_pro); //查询出城市的名称
var vsql = "select locid,locname,parentid from location where parentid in (select top 35 locId from location where loctype=1) "; var dt_city = SQLHelper.Get_DataTable(vsql, SQLHelper.GetCon(), new Dictionary<string, DBParam>());
//将dt_city这个DataTable转换成json
var tt_city = ToJson(dt_city);

<3> 建立一个js 文件 在文件中  写两个变量 var cn_pro,和var cn_city 将 tt_pro的值赋值给 cn_pro ,将tt_city的值赋值 cn_city 就成了一个js 文件了

js内如入 var cn_pro = [{ "locid": 1, "locname": "北京", "parentid": 0 }, { "locid": 673, "locname": "上海", "parentid": 0 }];

var cn_city = [{ "locid": 2, "locname": "北京", "parentid": 1 }, { "locid": 674, "locname": "上海", "parentid": 673 }]

当然我这是简写的。里面的内如大多都去掉了。就保留了前面2条数据做演示样例

================================================================

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MemberCenter.Master"
Inherits="System.Web.Mvc.ViewPage<bigtree.Model.MemberDetail>"%>
<%@ Import Namespace="bigtree" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> <% using (Html.BeginForm()) {%> <div class="rightCon">
<div class="nowTil">
<h3>
个人资料</h3>
</div>
<ul class="memForm">
<li>
<p class="setterTil">
手机:</p>
<div class="setterBd">
<%--<input type="text" class="setterInput fl" value="" readonly="">--%>
<%: Html.TextBoxFor(x => x.Mobile, new { @class = "setterInput fl" ,@readonly=""})%> <div class="setterExplain">
(请填写真实入住人姓名。每间房仅仅填写以为就可以)</div>
</div>
</li>
<li>
<p class="setterTil">
姓名:</p>
<div class="setterBd">
<%--<input type="text" class="setterInput fl" value="张小凡" readonly="">--%>
<%: Html.TextBoxFor(x => x.Name, new { @class = "setterInput fl"})%>
</div>
</li>
<li>
<p class="setterTil">
邮箱:</p>
<div class="setterBd">
<%-- <input type="text" class="setterInput fl">--%>
<%: Html.TextBoxFor(x => x.Email, new { @class = "setterInput fl" })%> <% var i = Model.EmailFlag;
if (i == true)
{ %> <div class="setterExplain">已验证</div> <% }%> <% else {%>
<div class="setterExplain">未验证</div>
<% }%> </div>
</li>
<li>
<p class="setterTil">
昵称:</p>
<div class="setterBd">
<%--<input type="text" class="setterInput fl">--%>
<%: Html.TextBoxFor(x=>x.UserName,new {@class="setterInput fl"}) %>
</div>
</li>
<li>
<p class="setterTil">
性别:</p>
<div class="setterBd">
<label class="sex">
<%--<input type="radio" name="sex">--%>
<%:Html.RadioButtonFor(x=>x.Sex,"男", new{@name="sex"})%>
男</label>
<label class="sex">
<%--<input type="radio" name="sex">--%>
<%: Html.RadioButtonFor(x=>x.Sex,"女", new{@name="sex"})%>
女</label>
</div>
</li>
<% var province = ViewData["province"] as System.Data.DataTable;%>
<li>
<p class="setterTil">
经常使用出发城市:</p>
<div class="setterBd">
<div class="selectBox sp1 fl">
<p id="displyPro" class="getNum sp3">
北京</p>
<div class="xjt">
</div>
<ul id="proList" class="selectSlideBox none sp3" style="">
</ul>
</div>
<div class="setterExplain sp">
省</div>
<div class="selectBox sp1 fl">
<p id="displyCity" class="getNum sp3">
北京</p>
<div class="xjt">
</div>
<ul id="cityList" class="selectSlideBox none sp3" style="">
</ul>
</div>
<div class="setterExplain">
市</div>
</div>
</li>
</ul>
<input type="hidden" id="selectCityId" value="1" />
<input type="hidden" id="selectCityName" value="北京" />
<input type="submit" value="保存" class="saveBtn">
</div>
<% } %>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server"> <script type="text/javascript">
$(function () {
$(".navList > :contains('个人资料')").addClass("cur"); // set province
var proList = "";
$.each(cn_pro, function (i, kv) {
proList += "<li data-id='" + kv.locid + "'>" + kv.locname + "</li>";
}); $("#proList").html(proList); $("#proList li").bind("click", function () {
var li = $(this);
var cityList = "";
$.each(cn_city, function (i, kv) {
if (kv.parentid == li.attr("data-id")) {
cityList += "<li data-id='" + kv.locid + "'>" + kv.locname + "</li>";
}
});
$("#cityList").html(cityList);
$("#displyPro").text(li.text());
$("#displyCity").text($("#cityList").children().first().text()); $("#selectCityId").val($("#cityList").children().first().attr("data-id"));
$("#selectCityName").val($("#cityList").children().first().text()); $("#cityList li").bind("click", function () { $("#displyCity").text($(this).text()); $("#selectCityId").val($(this).attr("data-id"));
$("#selectCityName").val($(this).text()); });
}); })
</script>
<script type="text/javascript" src="../../Scripts/Location.js"></script>
</asp:Content>

版权声明:本文博主原创文章,博客,未经同意不得转载。

Datatable转换为Json 然后,Json数据导入 js 档的更多相关文章

  1. [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  2. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  3. python 全栈开发,Day126(创业故事,软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON)

    作业讲解 下载代码: HBuilder APP和flask后端登录 链接:https://pan.baidu.com/s/1eBwd1sVXTNLdHwKRM2-ytg 密码:4pcw 如何打开APP ...

  4. 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据

    演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src=&qu ...

  5. 软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON

    全局变量 由于多个html页面,需要引用同一个变量.这个时候,需要定义一个全局变量!如何定义呢? 默认包含了mui的html文件都导入mui.js文件.那么将变量写在mui.js中,就可以实现所有页面 ...

  6. 把DataTable转换为泛型List<T>或是JSON

    在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable.为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为 ...

  7. C#中把Datatable转换为Json的5个代码实例

    一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table" ...

  8. 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

    转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...

  9. .NET DataTable转换为JSON格式的字符串

    在进行数据传递的时候,有时我们需要通过Ajax的方式或者其他的方式传递一个数据列表,可以将DataTable或者其他形式的数据列表转换为JSON的格式,通过Ajax实体的形式进行传递. 比如说: // ...

随机推荐

  1. poj3281(最大流)

    传送门:Dining 题意:一些牛,一些食物,一些饮料,每头牛都有其喜欢的几种食物和几种饮料,求最多能给多少头牛即找到食物又找到饮料~也就是有多少个 牛---食物---饮料 的匹配,而且满足一一匹配, ...

  2. uva 10003 Cutting Sticks(区间DP)

    题目连接:10003 - Cutting Sticks 题目大意:给出一个长l的木棍, 再给出n个要求切割的点,每次切割的代价是当前木棍的长度, 现在要求输出最小代价. 解题思路:区间DP, 每次查找 ...

  3. poj1797(最短路小变形)

    题目连接:http://poj.org/problem?id=1797 题意: 分析:dp[i]表示到达i点的过程中的最大承受重量,更新到i点时可能有多条路径,由优先队列堆出最大的那条即可. #inc ...

  4. Android Monkey自己主动化測试

    前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...

  5. C++ Preprosessor import

    #import Attributes Provides links to attributes used with the #import directive. Microsoft Specific ...

  6. hadoop日志分析

    一.项目要求 本文讨论的日志处理方法中的日志,仅指Web日志.事实上并没有精确的定义,可能包含但不限于各种前端Webserver--apache.lighttpd.nginx.tomcat等产生的用户 ...

  7. poj2942 Knights of the Round Table,无向图点双联通,二分图判定

    点击打开链接 无向图点双联通.二分图判定 <span style="font-size:18px;">#include <cstdio> #include ...

  8. Java中的反射——(1)什么是反射

    Java程序中的各个Java类属于同一类事物,描写叙述这类事物的Java类名就是Class. public class ReflectTest { public static void main(St ...

  9. 为VS2013添加SQLCE的支持

    解决 下载SQL Server Compact Toolbox by ErikEJ并安装 打开VS2013,新建一工程,在“视图>其它窗口>SQL Server Compact Toolb ...

  10. 基于Android 下载文件时,更新UI简单帮助类

    因为在项目开发时.有这种简单需求,问谷歌,网络上也有好多Utils工具类,可是比較冗余.自己就简单的写了一个简单帮助类. /** * 下载文件,更新UI简单帮助类 * * @author jarlen ...