• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

我们将共同携手迎接你的到来!


新的一年
新的开始
新的目标
新的收获

kevin 愛戀 20140103

博客园          联系   管理     
Linq to sql(五):存储过程(二)

带参数的存储过程

       创建如下存储过程:

create proc [dbo].[sp_withparameter]

@customerid nchar(5),

@rowcount int output

as

set nocount on

set @rowcount = (select count(*) from customers where customerid = @customerid)

       使用同样的方法生成存储过程方法,然后使用下面的代码进行测试:

        int? rowcount = -1;

        ctx.sp_withparameter("", ref rowcount);

        Response.Write(rowcount);

        ctx.sp_withparameter("ALFKI", ref rowcount);

        Response.Write(rowcount);

       结果输出了“01”。说明ID为“”的顾客数为0,而ID为“ALFKI”的顾客数为1。

存储过程的输出参数被封装成了ref参数,对于C#语法来说非常合情合理。SQL代码如下:

EXEC @RETURN_VALUE = [dbo].[sp_withparameter] @customerid = @p0, @rowcount = @p1 OUTPUT

-- @p0: Input StringFixedLength (Size = 5; Prec = 0; Scale = 0) []

-- @p1: InputOutput Int32 (Size = 0; Prec = 0; Scale = 0) [-1]

-- @RETURN_VALUE: Output Int32 (Size = 0; Prec = 0; Scale = 0) []

 

带返回值的存储过程

 

       再来创建第三个存储过程:

create proc [dbo].[sp_withreturnvalue]

@customerid nchar(5)

as

set nocount on

if exists (select 1 from customers where customerid = @customerid)

return 101

else

return 100

       生成方法后,可以通过下面的代码进行测试:

        Response.Write(ctx.sp_withreturnvalue(""));

        Response.Write(ctx.sp_withreturnvalue("ALFKI"));

       运行后程序输出“100101”

posted on 2010-06-01 13:34  kevin_20131022  阅读(227)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3