dojo从asp.net中获取json数据

本文介绍了一个ASP.NET应用程序如何从数据库读取数据,并将其转换为JSON格式传递给前端的过程。通过具体示例展示了如何使用ADO.NET进行数据操作,以及如何自定义方法将DataSet中的数据转换成JSON字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

对于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);
                        }
                    });

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值