• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#处理MySql多个返回集的方法

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#方法返回多个值,c#函数返回多个值,c#继承多个类,c#导出excel多个sheet,c#多个控件同步绘制等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#处理MySql多个返回集的方法。分享给大家供大家参考。具体方法如下:

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

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

Sql语句如下
select
    t.PosterID,
    t.PostTime,
    t.Title
 from app_us_poster t ORDER BY t.PostTime desc LIMIT startPageNum,endPageNum;</div>
这里MySql中返回是两个集,如何通过C#获取这两个值呢,需要用到MySqlDataAdapter和MySqlDataReader这两个类

查看MySqlDataAdapter类

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

可以看到里面有我们需要的方法哈,那就是
如果想添加取消操作的可以用
MySqlDataReader是有一个NextResult的方法可以用来循环读取返回集,并返回bool类型

思路就出来了,通过判断NextResult的结果是否为false,来结束返回集的查询,通过MySqlDataAdapter类的FillAsync的方法对每个结果进行填充
/// 读取多个返回集,返回List<DataTable>
/// </summary>
/// <param name="StoredName"></param>
/// <param name="Parameters"></param>
/// <returns></returns>
public List<DataTable> StroedGetTableList(string StoredName, List<sqlparameters> Parameters)
{

    MySqlDataAdapter mysqldata = new MySqlDataAdapter();
    MySqlCommand sqlCommand = new MySqlCommand();
    sqlCommand.CommandText = StoredName;//存储过程名称
    sqlCommand.CommandType = CommandType.StoredProcedure;
    sqlCommand.Connection = conn;

    for (int i = 0; i < Parameters.Count; i++)
    {
 sqlCommand.Parameters.AddWithValue(Parameters[i].name, Parameters[i].pvalue);
    }
    conn.Open();
    List<DataTable> dts = new List<DataTable>();
    MySqlDataReader mysqlreser = sqlCommand.ExecuteReader();//mysqlreader无构造函数
    bool re = true;
    System.Threading.CancellationToken _cts;//用于Cancel用的
    while (re)
    {
 DataTable dt = new DataTable();
 mysqldata.FillAsync(dt, mysqlreser).Wait(_cts);//等待线程完成
   dts.Add(dt);
 re = mysqlreser.NextResult();//取下一个结果集
      //  Trace.WriteLine(dt.Rows.Count);       

    }
    conn.Close();
    return dts;
}</div>

这里我用的阻塞主线程等待dt完成填充,不知道是否合适
补充一下

conn是连接数据库用的连接实例MySqlConnection

sqlparameters是我声明的一个结构体,用来保存mysql的存储过程的输入参数
{
        public string name;//存储过程的输入字符名称
        public object pvalue;//存储过程的输入变量
        public sqlparameters(string names, object pvalues)
        {
            name = names;
            pvalue = pvalues;
        }
}</div>

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#返回多少分钟之前或多少分钟之后时间的方法
  • C#处理MySql多个返回集的方法
  • C#实现合并多个word文档的方法
  • C#一个方法返回多个值示例

相关文章

  • 2017-05-28解决C#中Linq GroupBy 和OrderBy失效的方法
  • 2017-05-28[C#].NET中几种Timer的使用实例
  • 2017-05-28基于C#编写经理评分系统
  • 2017-05-28浅谈C#中的委托、事件与异步
  • 2017-05-28c#实现windows远程桌面连接程序代码
  • 2017-05-28详解C#中的string与String
  • 2017-05-28c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别详解
  • 2017-05-28C# SkinEngine控件 给窗体添加皮肤的方法
  • 2017-05-28c#使用Dataset读取XML文件动态生成菜单的方法
  • 2017-05-28C#实现在前端网页弹出警告对话框(alert)的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#通过NPOI操作Excel的实例代码
    • 将文件夹下所有文件输出到日志文件中 c#递归算法学习示例
    • C#中使用DataContractSerializer类实现深拷贝操作示例
    • C#实现Json转Unicode的方法
    • C#实现闪动托盘图标效果的方法
    • C#中Action和Func的区别
    • C#中的文件路径获取函数和文件名字获取函数小结
    • 浅谈C#中HttpWebRequest与HttpWebResponse的使用方法
    • C#值类型、引用类型中的Equals和==的区别浅析
    • C#创建数据库及附加数据库的操作方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有