当前位置:编程学习 > C#/ASP.NET >>

存储过程的用法及与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的专栏

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,