zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    linux系统调用是通过软中断实现的吗
    Linux系统调用怎么和内核或底层驱动交互的
    strace命令
    linux 用户态和内核态以及进程上下文、中断上下文 内核空间用户空间理解
    C语言string.h常用函数总结
    shall的过去式和should怎么区分
    P(Y|X) 和 P(X,Y)
    Sourceinsight最佳配色方案及颜色字体调整方法
    float 为什么可以表示很大的整数
    协方差矩阵
  • 原文地址:https://www.cnblogs.com/kevin2013/p/1749083.html
Copyright © 2011-2022 走看看