MDataTable属性RecordsAffected新应用:WebService与Json交互的记录总数
一:事出总有因:
1:需要来源:
最近有网友给我问了一个需求功能,大体需要功能如下:
2:解决方案:
由于网友使用 CYQ.Data ,我给出了以下建议:
方法很简单,由于需要返回记录总数,所以可以返回“记录总数,Json“,然后接收后再分隔一下。
3:方案升级:
简单无极限,我想到了还可以再简单些的方式:
我扫了下MDataTable,由于继续自IDataReader,所以有几个属性,好像派不上用场,存在也像是个浪费。
其中一个是:RecordsAffected,意思是受影响的记录总数,通常这个值默认为-1,99.9999%用不上。
为了使使用更简单,本人进行了以下的改进:
有了以上改进,直接返回json即可,还原时也可以从RecordsAffected拿回记录总数,绑定到分页。
花了些时间,写了一个Demo:
1:解决方案:
2:界面Html:
3:WebService的代码示例:
为了方便,这里用了文本数据库示例:
{
/// <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
MDataTable属性RecordsAffected新应用:WebService与Json交互的记录总数相关推荐
- Teams Bot 如何使用新的 System.Text.Json 库
我最近把 LuckyDraw的代码升级到了 .net core 3.1,当然我也很想使用最新的微软json库,System.Text.Json这个库的性能比之前Newtonsoft.Json速度更快, ...
- [译]试用新的System.Text.Json API
译注 尝试新的System.Text.Json API 对于.NET Core 3.0,我们 提供了一个名为System.Text.Json的全新命名空间 ,支持读取器/写入器,文档对象模型(DOM) ...
- .NET 6 新特性 System.Text.Json 中的 Writeable DOM
.NET 6 新特性 System.Text.Json 中的 Writeable DOM 特性 Intro 在 .NET 6 Preview 4 中,微软加入了 JSON Node 的支持,我们可以动 ...
- WebForm使用HttpWebRequest 调用webservice返回json
WebForm使用HttpWebRequest 调用webservice返回json 调用webservice部分:返回的是json 调用webservice部分:返回的是json public st ...
- java多图片上传json_[Java教程]SpringMVC框架五:图片上传与JSON交互
[Java教程]SpringMVC框架五:图片上传与JSON交互 0 2018-08-07 22:00:42 在正式图片上传之前,先处理一个细节问题: 每一次发布项目,Tomcat都会重新解压war包 ...
- java多图片上传json_SpringMVC框架五:图片上传与JSON交互
在正式图片上传之前,先处理一个细节问题: 每一次发布项目,Tomcat都会重新解压war包,之前上传过的图片会丢失 为了解决这个问题:可以不在Tomcat下保存图片,而是另找一个目录. 上传图片: 在 ...
- Spring Mvc 数据回显、异常处理、文件上传、json交互、ResTful、拦截器的使用(高级三)
1,数据回显 SpringMvc包含三种数据回显机制 第一种:对于简单数据类型,如:Integer.String.Float等使用Model将传入的参数再放到request域实现显示. (回顾jsp四 ...
- html5 java交互_html5+jquery与ssm进行json交互集成项目
[实例简介] eclipse 下html5+jquery+springmvc+spring+mybatis进行json交互集成项目,基础搭建项目,具体版本参考lib下包的版本号 [实例截图] [核心代 ...
- 封神台之萌新也能找CMS漏洞整理记录
封神台之萌新也能找CMS漏洞整理记录 工具 信息收集 通过后台直接获取SHELL 使用终端shell 工具 御剑后台扫描工具 ,BurpSuite, 菜刀.蚁剑 信息收集 靶场地址 后台地址 先扫下敏 ...
- 前后端分离 - 统一JSON 交互
1.应用场景 主要用于前后端分离, 统一JSON 交互方式 2.学习/操作 1.文档阅读 都前后端分离了,咱就别做页面跳转了!统统 JSON 交互__江南一点雨的博客-CSDN博客_前后端分离页面跳转 ...
最新文章
- macos降级_macOS Big Sur如何降级
- cmake重新编译matlab,ubuntu系统下cmake 编译matlab中mex文件
- html文本超出自动换行、显示省略号
- mysql 数据类型 decimal_mysql decimal、numeric数据类型
- jpa 多层嵌套一对多_OpenJPA-嵌套的一对多关系合并问题
- 了解计算机中的信息编码教案,五年级下册信息技术《奇妙的编码》教学设计
- python 模拟浏览器selenium_使用Selenium模拟浏览器,实现自动爬取数据
- 线性回归(二)---多元线性回归
- SQL语句更改数据库名,表名,列名
- asp向不同的用户发送信息_使用 Linux 命令行与其他用户进行通信 | Linux 中国
- 项目案例:浙江宁波江北区道路照明智慧化改造见成效
- 银耳椰椰——Alpha冲刺Day04
- java+es+nested_Elasticsearch中的关联查询。Nested类型介绍及查询原理。。
- mac 绑定阿里企业邮箱
- Redis expire
- 芯片附近为什么都放 0.1uF 电容 ?
- 最常见加密方式和Python实现
- k8s1.18 StorageClass 使用rbd-provisioner提供ceph rbd持久化存储
- 方程组的两种理解方式(线性代数及其应用【2】)
- 如何访问kubernetes API?