MDataTable属性RecordsAffected新应用:WebService与Json交互的记录总数

一:事出总有因:

 

1:需要来源:

最近有网友给我问了一个需求功能,大体需要功能如下: 

1:有一台服务器,以WebService或WCF方式提供数据。

2:有客户端(Web或Winform),调用远程WebService或WCF的数据,然后绑定显示表格数据,关键还需要带有分页功能。

2:解决方案: 

由于网友使用 CYQ.Data ,我给出了以下建议:

1:WebService 端:通过MAction,查询出表(MDataTable),再调用ToJson返回json输出。

2:客户端:通过调用调用远程的方法,接收返回的json字符串,然后用MDataTable.LoadFromJson方法,加载还原为表格,然后绑定到列表控件即可。

3:分页控件:http://www.cnblogs.com/cyq1162/category/259559.html

方法很简单,由于需要返回记录总数,所以可以返回“记录总数,Json“,然后接收后再分隔一下。

3:方案升级:

简单无极限,我想到了还可以再简单些的方式: 

我扫了下MDataTable,由于继续自IDataReader,所以有几个属性,好像派不上用场,存在也像是个浪费。

其中一个是:RecordsAffected,意思是受影响的记录总数,通常这个值默认为-1,99.9999%用不上。

 

为了使使用更简单,本人进行了以下的改进:

1:把调用Select分页查询后,把记录总数赋值给MDataTalle属性RecordsAffected。

2:对于ToJson方法输出,把记录总数也一并集在json中。

3:MDataTable.LoadFromJson时,可以还原记录总数到RecordsAffected属性。

 

有了以上改进,直接返回json即可,还原时也可以从RecordsAffected拿回记录总数,绑定到分页。

 

二:代码示例:

 

花了些时间,写了一个Demo:

1:解决方案: 

 

 

2:界面Html:

 

3:WebService的代码示例:

为了方便,这里用了文本数据库示例:

 

namespace MyService
{
    /// <summary>
    /// UsersService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    public class UsersService : System.Web.Services.WebService
    {

        [WebMethod]
        public string GetTableJson(int pageIndex, int pageSize)
        {
            CreateRow(pageIndex);
            MDataTable dt;
            using (Users u = new Users())
            {
                int count = 0;
                dt = u.Select(pageIndex, pageSize, “id>1", out count);
            }
            return dt.ToJson();
        }
        //产生表的数据
        private void CreateRow(int index)
        {
            if (index == 1)
            {
                using (Users u = new Users())
                {
                    for (int i = 0; i < 30; i++)
                    {

                        u.UserName = i.ToString();
                        u.CreateTime = DateTime.Now;
                        u.Insert();
                    }
                }
            }
        }
    }
    //为了省事,这里采用文本数据库做为示例。
    public class Users : CYQ.Data.Orm.OrmBase
    {
        public Users()
        {
            base.SetInit(this, "Users", "Txt Path={0}");
        }
        private int _ID;

        public int ID
        {
            get
            {
                return _ID;
            }
            set
            {
                _ID = value;
            }
        }
        private string _UserName;

        public string UserName
        {
            get
            {
                return _UserName;
            }
            set
            {
                _UserName = value;
            }
        }
        private DateTime _CreateTime;

        public DateTime CreateTime
        {
            get
            {
                return _CreateTime;
            }
            set
            {
                _CreateTime = value;
            }
        }

    }

}

 

 

4:Web界面的代码:


namespace Web
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadData();
            }
        }
        public void LoadData()
        {
            MyService.UsersService us = new MyService.UsersService();
            string json= us.GetTableJson(pager1.PageIndex, pager1.PageSize);
            MDataTable dt = MDataTable.LoadFromJson(json);
            dt.Bind(gvUsers);
            pager1.Count = dt.RecordsAffected;
            pager1.BindName = "LoadData";
        }
    }


最终简单的效果图:

 

以上就是 CYQ.Data V5版本MDataTable的RecordsAffected属性的应用场景之一。

 

示例源码打包下载(对于WebService可能需要重新添加引用下): Web.rar

时间: 2024-08-21 04:38:38

MDataTable属性RecordsAffected新应用:WebService与Json交互的记录总数的相关文章

jQuery调用Webservice传递json数组的方法_jquery

本文实例讲述了jQuery调用Webservice传递json数组的方法.分享给大家供大家参考,具体如下: Jquery由于提供的$.ajax强大方法,使得其调用webservice实现异步变得简单起来,可以在页面上传递Json字符串到Webservice中,Webservice方法进行业务处理后,返回Json对象给页面,让页面去展现. 这一切都非常的简单,今天要学习的并非这些.我们在实际处理业务过程中,会发现往往页面要传递给webservice 的并非一个或多个字符串,有时候需要传递的是一个组

jquery的ajax调用Webservice返回Json数组

本文章是利用jquery的ajax调用webservice返回json数组哦,json数据是网页特效的一种小型轻型数据,实时交互性更强于xml哦. json数据 {'employee':[{'name':'john','sex':'man','age':'25'},{'name':'tom','sex':'man','age':'21'},{'name':'mary','sex':'woman','age':'21'}]}     //jquery 调用webservice导入数据       

jquery调用WebService和WebService输出JSON

(环境:vs2008+jquery1.2.3) 发现.net自带的ajax.net使用webservice输出的是json,其中关键的就是在请求时: Content-Type:application/json;utf-8 所以我们只要在POST时加上一个Content-Type:application/json;utf-8就可以了 $.ajax({ type: "POST", contentType:"application/json;utf-8", url: &q

jQuery调用WebService返回JSON数据及参数设置注意问题_实用技巧

.NET Framework 3.5的发布解决了WebService调用中json问题,本文将介绍jQuery调用基于.NET Framework 3.5的WebService返回JSON数据,另外还要介绍一下用jQuery调用WebService的参数设置及设置不当所出现的问题,还有出现问题的原因 jQuery调用WebService网上的介绍也比较多,最近的项目中我也用到不少,一直都很少用.NET Ajax,比较钟情于jQuery调用请求WebService有几种方法,这主要说一下POST与

webservice 返回json多出一个{&amp;amp;quot;d&amp;amp;quot;:null}

问题描述 webservice返回json多出一个{"d":null},如下{"Response":null,"Code":2,"Message":"工作名称已存在"}{"d":null}后台是这么写的publicvoidReturnMsg(){varresponse=HttpContext.Current.Response;response.ContentType="appl

java解析新浪天气接口json的例子

java解析新浪天气接口json的例子 新浪天气返回的json数据 [     {         "currentCity": "厦门",         "pm25": "64",         "index": [             {                 "title": "穿衣",                 "zs&quo

WebService使用JSON格式传递笔记+JQuery测试

原文 WebService使用JSON格式传递笔记+JQuery测试 因为一些因素,必须改写WebService,很传统,但是很多公司还在用.. 因为XML 的关系,不想让他传递数据的时候过度肥大,所以我必须要尽量干净的JSON.. 于是开始我的改写旅程..   首先,网络上好多好多好多文件,可能因为状况不同,测试过许多也让我搞混很多次.. 最后有找到答案..笔记一下..   首先我开了三个不同的WebMethod 来测试三种不同的输出..   GetUserInfoString –取得字符串

**关于mysql5.7版本新特性介绍 ------数据类型 JSON**

关于mysql5.7版本新特性介绍 ------数据类型 JSON 测试环境: Win10.mysql 5.7.14 内容简介:随着mysql5.7版本的到来,大家对其的热情也越来越高涨,身为mysql圈子里的一员,我本身也对mysql5.7的一些新特性有所了解,通过学习了解到了很多新的特性,今天给大家介绍一下它在灵活性方面的一个新的功能:提供对JSON的支持 JSON介绍 首先介绍一下什么是JSON: > JSON(JavaScript Object Notation, JS 对象标记) 是一

js与json交互理论和示例

                                                                                                                                                                                                                  详细说明了理论和技巧,现实开发工作意义大 JSON 的语法可以表示以下三种类型的