91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現linq存儲過程返回多條結果集

發布時間:2021-11-24 09:39:06 來源:億速云 閱讀:126 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關如何實現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存儲過程返回多條結果集就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德令哈市| 宁津县| 东乌珠穆沁旗| 南乐县| 固安县| 扬州市| 西青区| 特克斯县| 岫岩| 商水县| 宁武县| 琼中| 青田县| 东光县| 嘉禾县| 德格县| 平遥县| 濮阳市| 高淳县| 肇庆市| 潮州市| 大化| 化隆| 龙门县| 奈曼旗| 集安市| 儋州市| 沁水县| 永德县| 绵阳市| 鲁山县| 武清区| 桃园市| 封丘县| 五华县| 淮安市| 博罗县| 区。| 兴业县| 五大连池市| 任丘市|