轻量级ORM框架Dapper应用四:使用Dapper返回多个结果集
2018-01-01 17:18
549 查看
使用Dapper的QueryMultiple方法可以一次执行多条SQL语句,返回多个结果集,代码如下
程序运行结果:
注意:Read获取的时候必须是按照上面返回表的顺序 比如上面先查询的Users表,那么Read的时候必须先返回Users表,否则返回没有数据。Read<T>里面的T泛型类不一定要和数据库表名相同,上面代码的T泛型类是User,数据库表名是Users。
下面的代码演示返回顺序不同:
上面的代码只是修改了返回表的数据,程序运行结果如下:
示例代码下载地址:https://pan.baidu.com/s/1hserGTu
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Configuration; 7 using Dapper; 8 using System.Data; 9 using System.Data.SqlClient; 10 using DapperAppQueryMultiple.Model; 11 12 namespace DapperAppQueryMultiple 13 { 14 class Program 15 { 16 static void Main(string[] args) 17 { 18 // 定义连接字符串 19 string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString; 20 using (IDbConnection connection = new SqlConnection(conn)) 21 { 22 var sql = @"SELECT * FROM Users WHERE UserId=@UserId; 23 SELECT * FROM Product WHERE ProductId=@ProductId"; 24 var queryMulti = connection.QueryMultiple(sql, new { UserId = 1, ProductId=3 }); 25 26 // 注意:Read获取的时候必须是按照上面返回表的顺序 比如上面先查询的Users表,那么Read的时候必须先返回Users表,否则返回没有数据 27 var users = queryMulti.Read<User>(); 28 var products = queryMulti.Read<Product>(); 29 Console.WriteLine("*****产品信息*****"); 30 // 循环遍历输出 31 products.AsList<Product>().ForEach(p => 32 { 33 Console.WriteLine("产品名称:"+p.ProductName+" 价格:"+p.Price); 34 }); 35 Console.WriteLine("*****产品信息*****"); 36 37 Console.WriteLine("*****用户信息*****"); 38 users.AsList<User>().ForEach(p => { 39 Console.WriteLine("用户姓名:"+p.UserName+" 邮箱:"+p.Email+" 地址:"+p.Address); 40 }); 41 Console.WriteLine("*****用户信息*****"); 42 } 43 44 45 Console.ReadKey(); 46 47 } 48 } 49 }
程序运行结果:
注意:Read获取的时候必须是按照上面返回表的顺序 比如上面先查询的Users表,那么Read的时候必须先返回Users表,否则返回没有数据。Read<T>里面的T泛型类不一定要和数据库表名相同,上面代码的T泛型类是User,数据库表名是Users。
下面的代码演示返回顺序不同:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Configuration; 7 using Dapper; 8 using System.Data; 9 using System.Data.SqlClient; 10 using DapperAppQueryMultiple.Model; 11 12 namespace DapperAppQueryMultiple 13 { 14 class Program 15 { 16 static void Main(string[] args) 17 { 18 // 定义连接字符串 19 string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString; 20 using (IDbConnection connection = new SqlConnection(conn)) 21 { 22 var sql = @"SELECT * FROM Users WHERE UserId=@UserId; 23 SELECT * FROM Product WHERE ProductId=@ProductId"; 24 var queryMulti = connection.QueryMultiple(sql, new { UserId = 1, ProductId=3 }); 25 26 // 先返回Product表的查询数据 27 var products = queryMulti.Read<Product>(); 28 var users = queryMulti.Read<User>(); 29 30 Console.WriteLine("*****产品信息*****"); 31 // 循环遍历输出 32 products.AsList<Product>().ForEach(p => 33 { 34 Console.WriteLine("产品名称:"+p.ProductName+" 价格:"+p.Price); 35 }); 36 Console.WriteLine("*****产品信息*****"); 37 38 Console.WriteLine("*****用户信息*****"); 39 users.AsList<User>().ForEach(p => { 40 Console.WriteLine("用户姓名:"+p.UserName+" 邮箱:"+p.Email+" 地址:"+p.Address); 41 }); 42 Console.WriteLine("*****用户信息*****"); 43 } 44 45 46 Console.ReadKey(); 47 48 } 49 } 50 }
上面的代码只是修改了返回表的数据,程序运行结果如下:
示例代码下载地址:https://pan.baidu.com/s/1hserGTu
相关文章推荐
- 轻量级ORM框架Dapper应用五:使用Dapper实现Join操作
- 轻量级ORM框架Dapper应用三:使用Dapper实现In操作
- 轻量级ORM框架Dapper应用二:使用Dapper实现CURD操作
- 轻量级ORM框架Dapper应用六:Dapper支持存储过程
- 轻量级ORM框架Dapper应用一:Dapper安装
- 轻量级ORM框架初探-Dapper与PetaPoco的基本使用
- ado.net连接模式访问数据库中datareader的返回多个结果集和mars的使用
- SQLSERVER在JDBC中使用插入语句并返回结果集的问题
- 使用delphi 开发多层应用(十二)使用kbmMW webserver 返回JSON
- 使用Dictionary作为数据库应用的返回。
- 1.写student类中的select,delete,update,insert方法并在objectDataSource中应用(分别写两个,一个返回datatable,一个使用list)
- android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
- .写student类中的select,delete,update,insert方法并在objectDataSource中应用(分别写两个,一个返回datatable,一个使用list
- 写student类中的select,delete,update,insert方法并在objectDataSource中应用(分别写两个,一个返回datatable,一个使用list)
- android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用
- 在PL/SQL中使用“select * from 表名”返回的结果集是无序的
- 写student类中的select,delete,update,insert方法并在objectDataSource中应用(分别写两个,一个返回datatable,一个使用list)
- C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数和返回值的使用注意事项