Datatable转换为Json 然后把Json数据放入 js 文件中

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>
时间: 2025-01-05 04:12:05

Datatable转换为Json 然后把Json数据放入 js 文件中的相关文章

将time的结果放入到文件中

缘起 今天看到一个问题,如何把time的执行结果放到文件中,心想直接time sh sleep.sh >output.log不就可以了么.其实大部分返回标准输出的命令都可以这么干,列如:ls >output.log 就会把ls的执行结果放入到output.log中. 那么为什么time命令就不行了呢? 因为:time命令返回的是标准错误输出! 实验准备: 1.有一个sleep.sh脚本,脚本内容如下:2.执行结果如下:3.通过time命令获取脚本执行时间 无效的例子1: time sh sle

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

直接把数据库中的数据保存在CSV文件中

今天突然去聊就来写一个小小的demo喽,嘿嘿 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "CSV文件|*.CSV

【源码】将一个整数的每位数分解并按逆序放入一个数组中(用递归算法)(C语言实现)

帮朋友做的,好像是一个面试题.如果仅仅是考察递归的话,应该是够了,程序的健壮性和通用性都很一般的说-- #include <stdio.h> #include <stdlib.h> int count = 0; void myRevert(int n, int a[]) { if(n < 10) { a[count++] = n; } else { a[count++] = n % 10; myRevert(n / 10, a); } } int main() { int n

JavaScript 将多个引用(样式或者脚本)放入一个文件进行引用

1.将样式放入一个文件进行引用 @import url("../media/css/bootstrap.min.css"); @import url("../media/css/bootstrap-responsive.min.css"); @import url("../media/css/font-awesome.min.css"); @import url("../media/css/style-metro.css");

使用原生php将数据库数据导出到excel文件中

最近在工作中遇到一个需求,需要将数据库中的数据导出到excel文件中,并下载excel文件.因为以前没做过,所以就百度了一下, 网上说的大多是使用PHPExcel类来操作excel文件,这还要去下载这个类才能使用,而我只想使用原生的php,不想那么麻烦,好在 也有网友说到关于原生php生成excel文件的方法,其实很简单,下面把我结合网上资料自己实践的代码分享一下. 一般我们这种导数据的操作都是通过用户在网页页面上点击某个按钮触发相应js方法,然后请求php接口来实现的,所以主要有两种 方法来完

将一整数逆序后放入一数组中

1.题目描述 将一整数逆序后放入一数组中(非递归实现) 例如: 1234 变为 {4,3,2,1} 2.代码实现 1 package com.wcy.october; 2 3 /** 4 * 时间:2016年10月23日 5 * 题目:将一整数逆序后放入一数组中(非递归实现) 例如: 1234 变为 {4,3,2,1} 6 */ 7 public class RecursionTest2 { 8 9 /** 10 * 将一整数逆序后放入一数组中 11 * @param number 待逆序的整数

java将数据写入到txt文件中(txt有固定的格式)

java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我要将数据写成下面的样子: 1      |      2      |        3       |        4 5      |      6      |        8       |        9 也许看起来很简单的,因为每个数据所代表的长度是不一样的,也有可能编码不一样,所

zoj 1608 Two Circles and a Rectangle 判断两个圆是否能放入一个矩形中

题目来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=608 分析: 两个圆放到矩形的临界点图为: 其中a为长, b为宽, r1 > r2 红色三角形的三边长分别为: x = a - (r1 +r2) y = b - (r1 + r2) z = r1 +r2 当 x ^ 2 + y ^ 2  >= z^2 时, 显然 矩形是可以放进去圆的. 代码如下: int main() { double w, l , r1 ,r2