C#处理MySql多个返回集的方法

2019-12-26 11:27:37丽君
易采站长站为您分析C#处理MySql多个返回集的方法,实现了对处理MySql多个返回集进行封装,是非常实用的技巧,需要的朋友可以参考下    

本文实例讲述了C#处理MySql多个返回集的方法。。具体方法如下:

关于Mysql返回多个集java和Php的较多,但是C#的完整代码好像没见过,研究了一下做个封装以后用

做一个Mysql的简单分页查询,有两个返回集

Sql语句如下

复制代码 SELECT COUNT(*) from  poster;
select 
    t.PosterID,
    t.PostTime,
    t.Title
 from app_us_poster t ORDER BY t.PostTime desc LIMIT startPageNum,endPageNum;
这里MySql中返回是两个集,如何通过C#获取这两个值呢,需要用到MySqlDataAdapter和MySqlDataReader这两个类

 

查看MySqlDataAdapter类

C#处理MySql多个返回集的方法

现在多了很多FillAsync的方法,用的Task异步写入。关于Task的实例可以参看这篇博客,各种例子是很好的

可以看到里面有我们需要的方法哈,那就是

复制代码 public Task<int> FillAsync(DataTable dataTable, IDataReader dataReader);
如果想添加取消操作的可以用
复制代码 public Task<int> FillAsync(DataTable dataTable, IDataReader dataReader, CancellationToken cancellationToken)
MySqlDataReader是有一个NextResult的方法可以用来循环读取返回集,并返回bool类型

 

思路就出来了,通过判断NextResult的结果是否为false,来结束返回集的查询,通过MySqlDataAdapter类的FillAsync的方法对每个结果进行填充

复制代码 /// <summary>
/// 读取多个返回集,返回List<DataTable>
/// </summary>
/// <param name="StoredName"></param>
/// <param name="Parameters"></param>
/// <returns></returns>
public List<DataTable> StroedGetTableList(string StoredName, List<sqlparameters> Parameters)
{