JSON

EasyASP 使用教程 [EasyASP v3(4)

字号+ 作者:H5之家 来源:H5之家 2017-08-04 11:02 我要评论( )

由于目前 AJAX 技术的广泛应用,JSON 格式的数据也被时常用来做为数据岛。使用 EasyASP 可以方便的生成 JSON 格式的记录集分页数据,下面是一个综合实例,代码描述了如何通过分页记录集得到一个 JSON 格式数据并在

由于目前 AJAX 技术的广泛应用,JSON 格式的数据也被时常用来做为数据岛。使用 EasyASP 可以方便的生成 JSON 格式的记录集分页数据,下面是一个综合实例,代码描述了如何通过分页记录集得到一个 JSON 格式数据并在此基础上对 JSON 数据进行一些扩展: '连接到Access数据库 Easp.Db.SetConnection "default", 1, "/source/sampledata/Northwind.mdb", "" Dim sql,rs,rsjson,json '定义SQL sql = "Select * From 产品" '定义每页记录数 Easp.Db.PageSize = 5 '取得分页记录集 Set rs = Easp.Db.GetRS(sql) '不用\uxxxx形式编码生成JSON中的中文字符 Easp.Json.EncodeUnicode = False '生成JSON格式数据 rsjson = Easp.Encode(rs) Easp.Db.Close(rs) '解析JSON,准备为JSON添加数据 Set json = Easp.Decode(rsjson) '为JSON数据添加"总记录数"、"总页数"、"当前页码"和"每页记录数" json.Put "total", Easp.Db.PageRecordCount json.Put "pagecount", Easp.Db.PageCount json.Put "pageindex", Easp.Db.PageIndex json.Put "pagesize", Easp.Db.PageCurrentSize '输出更新后的JSON Easp.Echo json.toString() Set json = nothing 上面是服务器端的代码,可以得到下面格式的 JSON 数据,并会根据传入的 page 参数值的不同值显示不同的分页数据: { "total": 77, "rows": [{ "产品ID": 1, "产品名称": "苹果汁", "供应商ID": 10, "类别ID": 1, "单位数量": "每箱24瓶", "单价": 11, "库存量": 39, "订购量": 0, "再订购量": 10, "中止": true } //.....此处省略中间的部分产品信息 , { "产品ID": 5, "产品名称": "麻油", "供应商ID": 2, "类别ID": 2, "单位数量": "每箱12瓶", "单价": 21.35, "库存量": 0, "订购量": 0, "再订购量": 0, "中止": true }], "pagecount": 16, "pageindex": 1, "pagesize": 5 } 而在网页前端,如果想得到第 5 页的第 3 条记录的产品名称,以使用 jQuery 为例,可以这样实现: $.get('product-list.asp', //分页页面地址 {page:5}, //要获取的页码 function(data){ //回调 alert(data.rows[2].产品名称); //第3行记录的产品名称 }, 'json' //指定ajax返回后的是json格式数据 );

批量操作

首先要说说这里的批量操作并不是指用一条SQL语句删除相同条件的多条记录,而是指批量操作多条本应该单独执行的SQL语句,比如批量插入、按ID号批量更新、删除等。 这里举个简单的插入数据的例子循序渐进的来看看 EasyASP 的批量操作是如何工作的:

我们假设用户要向数据库的 ProductClass 表插入一条记录,所以在HTML页面上构建了如下的表单代码: <form action="insert.asp?action=save" method="post"> <input type="text" name="productclassname" /> <input type="submit" value="Submit"> </form> 那么用 EasyASP 写的插入一条数据的完整代码如下: <!--#include file="easyasp/easp.asp" --> <% If Easp.Get("action") = "save" Then Dim result result = Easp.Db.Ins("ProductClass", "class_id:{easp.newid}, class_name:{productclassname}") '上面的 {easp.newid} 会生成一个唯一不重复的可排序10位字符串,推荐用于数据表的主键ID字段 If result > 0 Then Easp.JsAlert("插入成功!") End If %> 现在我们要让用户可以批量插入数据,于是我们将 HTML 页面的代码修改为一次可以输入4个 productclassname: <form action="insert.asp?action=save" method="post"> <input type="text" name="productclassname" /> <br /> <input type="text" name="productclassname" /> <br /> <input type="text" name="productclassname" /> <br /> <input type="text" name="productclassname" /> <br /> <input type="submit" value="Submit"> </form> 请注意,上面的文本框的 name 值都是一样的,所以在服务器端,会接收到一个序列而不是单个文本框的值。而后台代码则只需要做出非常少的修改就行了: <!--#include file="easyasp/easp.asp" --> <% If Easp.Get("action") = "save" Then Dim result result = Easp.Db.InsBatch("ProductClass", "class_id:{easp.newid}, class_name:{productclassname}") '批量操作函数里的 {easp.newid} 会为每条记录生成一个新ID If result > 0 Then Easp.JsAlert(result & "条记录插入成功!") End If %> 相信你可以看得出来,EasyASP 中的数据库批量操作基本上和操作一般的查询是一样的,只是方法名有所不同而已。 下面列出了 EasyASP 所有可用的数据库批量操作方法: '用于默认数据库连接的方法 '批量执行SQL(注:Select 语句不能用于批量操作) result = Easp.Db.ExecBatch(sql) '批量新增记录 result = Easp.Db.InsBatch(table, field:value[,field:value...]) '批量更新记录 result = Easp.Db.UpdBatch(table, field=value[,field=value...], where) '批量删除记录 result = Easp.Db.DelBatch(table, where) 上面的方法返回的都受影响的行数。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • FineReport帮助文档

    FineReport帮助文档

    2017-08-04 10:02

  • JAVA中使用JSON进行数据传递示例

    JAVA中使用JSON进行数据传递示例

    2017-08-03 18:00

  • Gson和Fastjson的使用

    Gson和Fastjson的使用

    2017-08-03 10:02

  • 【转】JMeter学习(三十五)使用jmeter来发送json

    【转】JMeter学习(三十五)使用jmeter来发送json

    2017-08-01 16:02

网友点评
(