dojo从asp.net中获取json数据

简介:

搞来有搞去终于有了个结果,主要是一开始犯了一些低级错误。

对于json不太了解的童鞋,可以看看这个:http://www.dreamdu.com/blog/2008/10/19/json_in_javascript/

这个例子中主要是从数据库中读取数据,转换成JSON格式,传递给前端,废话少说上代码:


protected void Page_Load(object sender, EventArgs e)
        {
             string b = Request["callback"];


            string name = Context.Request["name"];
            //数据库操作
            SqlConnection thisConnection = new SqlConnection("Data Source=localhost;Initial Catalog=commodities; uid=sa;Password=123");
            string command = "select * from InterestStore where UserID = " + name;
            SqlDataAdapter thisAdapter = new SqlDataAdapter(command, thisConnection);
            SqlCommandBuilder thisCommandBuilder = new SqlCommandBuilder(thisAdapter);
            DataSet thisDataSet = new DataSet();
            thisAdapter.Fill(thisDataSet, "IStore");
            //将数据表转换成JSON数据
            string ss = GetJson(thisDataSet, "IStore");
           //返回到前端
            Response.Write(ss);
            Response.End();//Response.End把前面的内容都输出了,阻止了后面html相关内容的输出
        }

下面是将数据转化成JSON代码(改了好长时间,哈哈)


/// <summary>
        /// 获取Json数据
        /// </summary>
        /// <param name="dSet">数据集</param>
        /// <param name="strTableName">表名</param>
        /// <returns></returns>
        private string GetJson(DataSet dSet, string strTableName)
        {
            StringBuilder sBuilder = new StringBuilder();

            sBuilder.Append("{");
            //sBuilder.Append(" " + strTableName + ":{");
            sBuilder.Append("\"" + strTableName +"\":[");

            try {
                for (int i = 0; i < dSet.Tables[strTableName].Rows.Count; i++)
                {
                    sBuilder.Append("{");
                    for (int j = 0; j < dSet.Tables[strTableName].Columns.Count; j++)
                    {
                        sBuilder.AppendFormat("\"{0}\":\"{1}\",", dSet.Tables[strTableName].Columns[j].ColumnName, dSet.Tables[strTableName].Rows[i][j].ToString());
                    }
                    sBuilder.Remove(sBuilder.ToString().LastIndexOf(','), 1);
                    sBuilder.Append("},");
                }
                sBuilder.Remove(sBuilder.ToString().LastIndexOf(','), 1);

                sBuilder.Append("]");
                sBuilder.Append("}");
                //sBuilder.Append(" };");
                return sBuilder.ToString();
            }
            catch (Exception es){
                throw new Exception(es.Message);
            }
        }

前台返回的数据:

{"IStore":[{"SOIID":"1 ","UserID":"001 ","StoreID":"47 ","Attention":"10"},{"SOIID":"2 ","UserID":"001 ","StoreID":"77 ","Attention":"8"},{"SOIID":"3 ","UserID":"001 ","StoreID":"81 ","Attention":"8"},{"SOIID":"4 ","UserID":"001 ","StoreID":"42 ","Attention":"7"},{"SOIID":"5 ","UserID":"001 ","StoreID":"81 ","Attention":"6"},{"SOIID":"6 ","UserID":"001 ","StoreID":"114 ","Attention":"6"},{"SOIID":"7 ","UserID":"001 ","StoreID":"106 ","Attention":"8"},{"SOIID":"8 ","UserID":"001 ","StoreID":"116 ","Attention":"6"}]}

前台执行ajax调用的代码


xhr.get({
                        //请求页面
                        url: "WebForm3.aspx",
                        //参数
                        content: { name: sname },
                        //数据格式
                        handleAs: "json",
                        //当执行成功时调用的方法
                        load: function (newContent) {
                            try {
                                
                                var str = newContent;
                                console.log(str);
                                console.log("ddddddddddddddddddd");
                                console.log(dojo.toJson(str));
                            }
                            catch (err)
                            { console.log(err); }
                            //dom.byId("txtSuggestion").value = people.programmers[0].lastName;
                            dom.byId("txtSuggestion").value = newContent.IStore[2].StoreID;
                        },
                        //失败时调用的方法
                        error: function (err) {
                            //alert("error");
                            alert(err);
                        }
                    });

目录
相关文章
|
6月前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
|
21天前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
37 2
|
3月前
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
|
4月前
|
开发框架 JSON 前端开发
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
|
3月前
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
|
6月前
|
存储 测试技术 计算机视觉
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
|
6月前
|
SQL 数据库
使用ADO.NET查询和操作数据
使用ADO.NET查询和操作数据
|
6月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
117 0
|
6月前
|
Oracle 关系型数据库 数据管理
.NET医院检验系统LIS源码,使用了oracle数据库,保证数据的隔离和安全性
LIS系统实现了实验室人力资源管理、标本管理、日常事务管理、网络管理、检验数据管理(采集、传输、处理、输出、发布)、报表管理过程的自动化,使实验室的操作人员和管理者从繁杂的手工劳作中解放出来,提高了检验人员的工作效率和效益,降低了劳动成本和差错发生率。
|
6月前
|
JSON 开发框架 .NET
ASP.NET Core Web API设置响应输出的Json数据格式的两种方式
ASP.NET Core Web API设置响应输出的Json数据格式的两种方式
166 0