av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

教你如何實(shí)現(xiàn)linq存儲過程返回多條結(jié)果集

linq存儲過程曾經(jīng)一度困擾我。我下定決心要研究個(gè)明白,在我的仔細(xì)分析下,終于明白一些了,現(xiàn)在把得到的成果和大家分享一下。

成都創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、峽江網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為峽江等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

linq存儲過程默認(rèn)生成的代碼是ISingleResult的,也就是只能返回一條結(jié)果集,我們先動(dòng)手腳,將其改成IMultipleResults 的.實(shí)體類根據(jù)不同情況更改.

linq存儲過程更改前:

 
 
 
  1. [Function(Name="dbo.MeterTaskStat")]
  2. public ISingleResult MeterTaskStat
  3. ([Parameter(Name="MeterTaskType", DbType="Int")]
  4.  System.Nullable meterTaskType,
  5. [Parameter(Name="StartDate", DbType="DateTime")]
  6.  System.Nullable startDate,
  7.  [Parameter(Name="EndDate", DbType="DateTime")]
  8. System.Nullable endDate)
  9. {
  10.  IExecuteResult result =
  11. this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())),
  12.  meterTaskType, startDate, endDate);
  13.  return ((ISingleResult)(result.ReturnValue));
  14. }

linq存儲過程更改后:

 
 
 
  1. [Function(Name="dbo.MeterTaskStat")]
  2. [ResultType(typeof(TaskStatData))]
  3. public IMultipleResults MeterTaskStat
  4. ([Parameter(Name = "MeterTaskType", DbType = "Int")]
  5. System.Nullable meterTaskType,
  6. [Parameter(Name = "StartDate", DbType = "DateTime")]
  7.  System.Nullable  startDate, 
  8. [Parameter(Name = "EndDate", DbType = "DateTime")]
  9.  System.Nullable  endDate)  
  10. {
  11.  IExecuteResult result =
  12. this.ExecuteMethodCall
  13. (this, ((MethodInfo)(MethodInfo.GetCurrentMethod())),
  14. meterTaskType, startDate, endDate);
  15. return ((IMultipleResults)(result.ReturnValue));
  16. }

注意到 多一條: [ResultType(typeof(TaskStatData))] 的記錄吧,簡單介紹一下,必須得為linq存儲過程的結(jié)果返回一個(gè)實(shí)體類型,而TaskStatData就是自己定義的類,[ResultType(typeof(TaskStatData))]必須加上,加linq存儲過程回值.

linq存儲過程:

 
 
 
  1. set ANSI_NULLS ON
  2. set QUOTED_IDENTIFIER ON
  3. go
  4. -- ===================================================
  5. -- Author:MaHong
  6. -- Create date: 2008-09-11
  7. -- Description: 根據(jù)口徑統(tǒng)計(jì)某段時(shí)間內(nèi)水表復(fù)裝任務(wù)信息
  8. -- ===================================================
  9. ALTER PROCEDURE [dbo].[MeterTaskStat]
  10.  @MeterTaskType INT,
  11.  @StartDate DateTime,
  12.  @EndDate DateTime
  13. AS
  14. BEGIN
  15.  SET NOCOUNT ON;
  16.  SELECT MeterCaliberName,SUM(Requisition) AS
  17.  RequisitionCount,SUM(Approve) AS ApproveCount,
  18.  SUM(Disapprove) AS DisapproveCount,SUM(WaitWork) AS WaitWorkCount, 
  19.  SUM(CompleteY) AS CompleteYCount,SUM(CompleteN) AS CompleteNCount,
  20.  SUM(Requisition+Approve+Disapprove+WaitWork+CompleteY+CompleteN) AS
  21.  Subtotal
  22.  FROM (SELECT MeterCaliberName
  23.  ,CASE WHEN MeterTaskStatus=0 THEN 1 ELSE 0 END Requisition 
  24.  ,CASE WHEN MeterTaskStatus=1 THEN 1 ELSE 0 END Approve 
  25.  ,CASE WHEN MeterTaskStatus=11 THEN 1 ELSE 0 END Disapprove 
  26.  ,CASE WHEN MeterTaskStatus=2 THEN 1 ELSE 0 END WaitWork 
  27.  ,CASE WHEN MeterTaskStatus=4 THEN 1 ELSE 0 END CompleteY 
  28.  ,CASE WHEN MeterTaskStatus=5 THEN 1 ELSE 0 END CompleteN
  29.  FROM View_MeterTaskMaintain WHERE [MeterTaskType] =
  30.  @MeterTaskType AND StartDate BETWEEN @StartDate AND @EndDate) tempTable
  31.  GROUP BY MeterCaliberName
  32. END

linq存儲過程之在business中間層直接調(diào)用:

 
 
 
  1. public class StatTaskControl : ControlBase
  2. {
  3. public IEnumerable  GetStatInfo
  4. (TaskType type, DateTime startDate, DateTime endDate)
  5. {
  6. IMultipleResults info =
  7. Context.MeterTaskStat((int)type, startDate, endDate);
  8. IEnumerable  data = info.GetResult ();  
  9. return data;
  10. }
  11. }

linq存儲過程之ui層獲取:

 
 
 
  1. protected void StatButton_Click(object sender, EventArgs e)
  2. {
  3. DateTime startDate = DateTime.Parse(StartDate.Text);
  4. DateTime endDate = DateTime.Parse(EndDate.Text);
  5. TaskType type = TaskType.Remove;
  6. IEnumerable  info =
  7.  _control.GetStatInfo(type, startDate, endDate);
  8. List  data = info.ToList();  
  9. RemoveGridView.DataSource = data;
  10. RemoveGridView.DataBind();
  11. }

整個(gè)linq存儲過程大概就是這么幾步.也不是太困難!


網(wǎng)頁名稱:教你如何實(shí)現(xiàn)linq存儲過程返回多條結(jié)果集
網(wǎng)站網(wǎng)址:http://uogjgqi.cn/article/cdpddic.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流