程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> C#開發學習——存儲過程,

C#開發學習——存儲過程,

編輯:關於.NET

C#開發學習——存儲過程,


舉個例子:

帶輸入參數的存儲過程
計算班級中英語和數學不及格的人數 

    if(exists(select * from sys.objects where name='usp_GetFailCount'))
        drop proc usp_GetFailCount
        go

    create proc usp_GetFailCount--開始創建存儲過程
    @EngPass int,--存儲過程的參數不需要加declare
    @MathPass int
    as       
       聲明變量存儲英語成績不及格和數學成績不及格的人數
        declare @engCount int
        declare @mathCount int

        --給人數賦值
        select @engCount=Count(*) from Score where english<@EngPass
        select @mathCount=Count(*) from Score where math<@MathPass

        --輸出結果
        select '英語不及格的人數',@engCount
        select '數學不及格的人數',@mathCount

      執行存儲過程
        exec usp_GetFailCount
        --傳入兩個需要的參數
        exec usp_GetFailCount 80,60
        --想讓英語和數學的及格分數線都是60
        exec usp_GetFailCount @EngPass=60,@MathPass=60
       


      總結:

存儲過程如果沒有默認的參數 
傳參的方式

1.直接傳入跟參數類型一樣的值

2.@參數名=值,個數必須跟參數要求的一致

存儲過程如果有默認的參數

1.不傳,采用的默認值

2.傳1個,另一個就是默認值

3.傳2個,會把默認值覆蓋

 

帶輸出參數的存儲過程

if(exists(select * from sys.objects where name='usp_GetEngFailCount'))
       drop proc usp_GetEngFailCount
    go
    create proc usp_GetEngFailCount
    @EngPass int,--輸入參數
    @MathPass int,
    將數學成績不及格的人數 使用輸出參數返回
    @MathFailCount int output--輸出參數
    as
      先求英語不及格的人數
 declare @EngFailCount int
      select @EngFailCount=Count(*) from Score where english<@EngPass


      select @MathFailCount=Count(*) from Score where math<@MathPass

      -只打印英語不及格的人數
      select '英語不及格的人數',@EngFailCount

     Declare @mCount int
      --調用
     exec usp_GetEngFailCount 60,60,@mCount output
    輸出數學不及格的人數
     select '數學不及格的人數',@mCount

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved