首页 / .NET / 正文

[Dapper].NET/C#程序开发中使用Dapper如何分别获取查询结果中的多个数据集?

5084 发布于: 2018-01-30 读完约需3分钟

问题描述

我们知道,在.NET/C#程序开发中,使用ADO.NET是可以一个执行多条SQL查询语句并返回多个查询结果集的,比如:

var command = new SqlCommand("SELECT count(*) FROM TableA; SELECT count(*) FROM TableB;", connection);

using(var reader = command.ExecuteReader())
{
    reader.Read();
    resultA = reader.GetInt32(0);
    reader.NextResult();
    reader.Read();
    resultB = reader.GetInt32(0);
}

在.NET/C#程序开发过程中使用Dapper时,如何处理类似的需求和问题呢?

方案一

使用Dapper的静态扩展方法QueryMultiple(...)可以实现,如下:

string query = @"SELECT COUNT(*) FROM TABLEA;
                 SELECT COUNT(*) FROM TABLEB";
using (var multi = connection.QueryMultiple(query, null))
{
    int countA = multi.Read<int>().Single();
    int countB = multi.Read<int>().Single();
}

方案二

var grid = connection.QueryMultiple("
             SELECT COUNT(*) FROM TABLEA
             SELECT COUNT(*) FROM TABLEB
             SELECT COUNT(*) FROM TABLEC");
var lstResult = new List<int>();
var isNext = false;
do{
    var first2 = info.Read<int>().Single();
    lstResult.Add(first2);
    isNext=info.IsConsumed;
}
while (!isNext);

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [RestSharp].NET/C#程序开发中如何使用RestSharp下载并保存文件?

下一篇: [Dapper].NET/C#程序开发中使用Dapper实现类似SQL语句中的Like查询的方法有哪些呢?

本文永久链接码友网 » [Dapper].NET/C#程序开发中使用Dapper如何分别获取查询结果中的多个数据集?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册