iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何实现linq存储过程返回多条结果集
  • 616
分享到

如何实现linq存储过程返回多条结果集

2023-06-17 21:06:18 616人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关如何实现linq存储过程返回多条结果集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。linq存储过程默认生成的代码是ISingleResult的,也就是只能返回一

这篇文章将为大家详细讲解有关如何实现linq存储过程返回多条结果集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

linq存储过程默认生成的代码是ISingleResult的,也就是只能返回一条结果集,我们先动手脚,将其改成IMultipleResults 的.实体类根据不同情况更改.

linq存储过程更改前:

[Function(Name="dbo.MeterTaskStat")]  public ISingleResult<XXXX> MeterTaskStat([Parameter(Name="MeterTaskType", DbType="Int")] System.Nullable<int> meterTaskType, [Parameter(Name="StartDate", DbType="DateTime")] System.Nullable<System.DateTime> startDate, [Parameter(Name="EndDate", DbType="DateTime")] System.Nullable<System.DateTime> endDate)  {   IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), meterTaskType, startDate, endDate);   return ((ISingleResult<XXXXXX>)(result.ReturnValue));  }

linq存储过程更改后:

[Function(Name="dbo.MeterTaskStat")]  [ResultType(typeof(TaskStatData))]  public IMultipleResults MeterTaskStat([Parameter(Name = "MeterTaskType", DbType = "Int")] System.Nullable<int> meterTaskType, [Parameter(Name = "StartDate", DbType = "DateTime")] System.Nullable startDate, [Parameter(Name = "EndDate", DbType = "DateTime")] System.Nullable endDate)  {   IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), meterTaskType, startDate, endDate);  return ((IMultipleResults)(result.ReturnValue));  }

注意到 多一条: [ResultType(typeof(TaskStatData))] 的记录吧,简单介绍一下,必须得为linq存储过程的结果返回一个实体类型,而TaskStatData就是自己定义的类,[ResultType(typeof(TaskStatData))]必须加上,加linq存储过程回值.

linq存储过程:

set ANSI_NULLS ON  set QUOTED_IDENTIFIER ON  Go  -- ===================================================  -- Author:MaHong  -- Create date: 2008-09-11  -- Description: 根据口径统计某段时间内水表复装任务信息  -- ===================================================  ALTER PROCEDURE [dbo].[MeterTaskStat]   @MeterTaskType INT,   @StartDate DateTime,   @EndDate DateTime  AS  BEGIN   SET NOCOUNT ON;   SELECT MeterCaliberName,SUM(Requisition) AS RequisitionCount,SUM(Approve) AS ApproveCount,   SUM(Disapprove) AS DisapproveCount,SUM(WaitWork) AS WaitWorkCount,    SUM(CompleteY) AS CompleteYCount,SUM(CompleteN) AS CompleteNCount,   SUM(Requisition+Approve+Disapprove+WaitWork+CompleteY+CompleteN) AS Subtotal   FROM (SELECT MeterCaliberName   ,CASE WHEN MeterTaskStatus=0 THEN 1 ELSE 0 END Requisition    ,CASE WHEN MeterTaskStatus=1 THEN 1 ELSE 0 END Approve    ,CASE WHEN MeterTaskStatus=11 THEN 1 ELSE 0 END Disapprove    ,CASE WHEN MeterTaskStatus=2 THEN 1 ELSE 0 END WaitWork    ,CASE WHEN MeterTaskStatus=4 THEN 1 ELSE 0 END CompleteY    ,CASE WHEN MeterTaskStatus=5 THEN 1 ELSE 0 END CompleteN   FROM View_MeterTaskMaintain WHERE [MeterTaskType] = @MeterTaskType AND StartDate BETWEEN @StartDate AND @EndDate) tempTable   GROUP BY MeterCaliberName  END

linq存储过程之在business中间层直接调用:

public class StatTaskControl : ControlBase  {  public IEnumerable GetStatInfo(TaskType type, DateTime startDate, DateTime endDate)  {  IMultipleResults info = Context.MeterTaskStat((int)type, startDate, endDate);  IEnumerable data = info.GetResult();  return data;  }  }

linq存储过程之ui层获取:

protected void StatButton_Click(object sender, EventArgs e)  {  DateTime startDate = DateTime.Parse(StartDate.Text);  DateTime endDate = DateTime.Parse(EndDate.Text);  TaskType type = TaskType.Remove;  IEnumerable info = _control.GetStatInfo(type, startDate, endDate);  List data = info.ToList();  RemoveGridView.DataSource = data;  RemoveGridView.DataBind();  }

整个linq存储过程大概就是这么几步.也不是太困难!

关于如何实现linq存储过程返回多条结果集就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何实现linq存储过程返回多条结果集

本文链接: https://www.lsjlt.com/news/293458.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现linq存储过程返回多条结果集
    这篇文章将为大家详细讲解有关如何实现linq存储过程返回多条结果集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。linq存储过程默认生成的代码是ISingleResult的,也就是只能返回一...
    99+
    2023-06-17
  • mysql存储过程返回多个结果集的示例
    这篇文章给大家分享的是有关mysql存储过程返回多个结果集的示例的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用...
    99+
    2022-10-18
  • mybatis调用mysql存储过程(返回参数,单结果集,多结果集)
    目录一、接收一个返回值注意事项:存储过程主要分成三类:二、接收list结果集三、返回多个结果集四、第二种配置也可以一、接收一个返回值 使用Map接收返回参数,output参数放在传入...
    99+
    2022-11-12
  • mysql存储过程 返回 list结果集方式
    目录mysql存储过程 返回 list结果集思路mysql存储过程和存储函数练习存储过程和存储函数语法存储函数案例演示mysql存储过程 返回 list结果集 思路 直接链接多个表返...
    99+
    2022-11-13
  • mysql存储过程 返回 list结果集方式
    目录mysql存储过程 返回 list结果集思路mysql存储过程和存储函数练习存储过程和存储函数语法存储函数案例演示mysql存储过程 返回 list结果集 思路 直接链接多个表返回结果集即可,先写成普通的sql调整好...
    99+
    2022-09-26
  • MySql 储存过程 多个结果返回解析
    当需要查询复杂的数据模型并返回多个结果集时,使用 MySQL 存储过程可以有效地优化性能。同时,在开发中使用 Mybatis 可以方便地调用 MySQL 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 MySQL 存...
    99+
    2023-09-27
    mysql mybatis java
  • mysql存储过程如何利用临时表返回结果集
    目录首先要声明的是测试示例 真实需求,查找出所有用建单情况首先要声明的是 1,游标的方法会很慢在mysql中,在oracle数据库中还可以,除非没有别的方法,一般不建议在mysql中使用游标, 2,不建议在my...
    99+
    2022-09-26
  • 如何解决Linq存储过程返回问题
    这篇文章主要为大家展示了“如何解决Linq存储过程返回问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决Linq存储过程返回问题”这篇文章吧。存储过程在我们编写程序中,往往需要一些存储过...
    99+
    2023-06-17
  • mybatis调用sqlserver存储过程返回结果集的方法
    第一种:返回值通过out输出 sqlserver存储 testMapper.xml 两种都能接收到数据的, 因为我的实体类字段与数据库的不一致,上面图片是按照数据库字段定义的,下...
    99+
    2022-11-12
  • Linq如何实现多个结果集
    小编给大家分享一下Linq如何实现多个结果集,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linq多个结果集这种存储过程可以生成Linq多个结果集形状,但我们已经...
    99+
    2023-06-17
  • 关于C#中使用Oracle存储过程返回结果集的问题
    问题: 在MSSQLServer中定义的存储过程可以直接返回一个数据集,如: create procedure sp_getAllEmployees as SELECT ...
    99+
    2022-11-12
  • 存储过程的使用(五)——(返回结果集/设置多个变量值)--遇到坑
    表如下: 表数据:https://pan.baidu.com/s/1e9dpnr8sYvq_8-E-h5RxJg 提取码:fpig 复制这段内容后打开百度网盘手机App,操作更方便哦 如上图就是给多个变量设置值,像单个变量的查询结果设...
    99+
    2021-11-19
    存储过程的使用(五)——(返回结果集/设置多个变量值)--遇到坑
  • SQL Server存储过程中怎么同时返回分页结果集和总数
    这期内容当中小编将会给大家带来有关SQL Server存储过程中怎么同时返回分页结果集和总数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、内核层,通常也就是要查询的字...
    99+
    2022-10-18
  • 如何实现存储过程返回数组对象
    本篇内容主要讲解“如何实现存储过程返回数组对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现存储过程返回数组对象”吧! 其...
    99+
    2022-10-18
  • 我们如何在 MySQL 返回的结果集的组级别应用过滤条件?
    众所周知,SELECT 语句中的 GROUP BY 子句可以将 MySQL 返回的结果集进行分组。现在,如果我们只想返回某些特定组,则需要在组级别应用过滤条件。可以通过在 GROUP BY 子句中使用 HAVING 子句来完...
    99+
    2023-10-22
  • SpringBoot如何实现统一封装返回前端结果集
    这篇文章主要介绍了SpringBoot如何实现统一封装返回前端结果集的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot如何实现统一封装返回前端结果集文章都会有所收获,下面我们一起来看看吧。我们如...
    99+
    2023-07-02
  • 我们如何在 MySQL 存储过程中处理结果集?
    我们可以使用游标来处理存储过程中的结果集。基本上,游标允许我们迭代查询返回的一组行并相应地处理每一行。为了演示 CURSOR 在 MySQL 存储过程中的使用,我们正在创建以下存储过程,该过程基于名为“student_info”的表的值,如...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作