程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 存儲過程的用法及與C#代碼的不同

存儲過程的用法及與C#代碼的不同

編輯:C#入門知識

 

下面是個存儲過程的應用

 

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

GO

-- =============================================

-- Author:  <Author,,Name>

-- Create date: <Create Date,,>

-- Description: <Description,,>

-- =============================================

CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>

 -- Add the parameters for the stored procedure here

 @title nvarchar(100),  --新聞標題

 @content TEXT,         --新聞內容

 @pubUser NVARCHAR(50), --發布人

 @catids varchar(200),  --新聞類別列表,用“:”分割

 @error nvarchar(200) OUTPUT  --用來返回錯誤信息

AS

BEGIN

 -- SET NOCOUNT ON added to prevent extra result sets from

 -- interfering with SELECT statements.

 SET NOCOUNT ON;

 declare @newsid int  --新聞id

 declare @catid varchar(10) --新聞類別id

 declare @pos int  --類別列表中分隔符":"的位置

   

    begin transaction

    begin try

        insert into newscontent(title,[content],pubuser)values(@title,@content,@pubUser)

        set @newsid=@@identity

        while(len(@catids)>0)

        begin

            set @pos=charindex(':',@catids)

   if(@pos<>0)

   begin

    set @catid=substring(@catids,1,@pos-1)

    set @catids=substring(@catids,@pos+1,@pos)

   end

   else

   begin

    set @catid=@catids

    set @catids=''

   end

   insert into newscategory(newsid,catid)values(@newsid,cast(@catid as int))

        end

  commit transaction

  return 0

    end try

 begin catch

  set @error=error_message()

  rollback transaction

  return 1

    end catch

END

 

在存儲中語句的內容要寫在begin和end之間

例如:

c#中的if語句

if(){};

而存儲過程中的if語句

if()

begin 語句  end

 

catch語句寫成

begin catch      

//語句

end catch

 

在就是聲明變量的方法不一樣 用declare @num nvarchar形式 聲明

賦值使用set賦值

摘自:yu851293483的專欄

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