ASP.NET调用存储过程并接收存储过程返回值

原文地址:http://www.2cto.com/kf/201110/109214.html

CREATE TABLE Table_1
(
    tid int identity(1,1),
    number int
)
1.调用无参数无返回值的存储过程
CREATE PROC proc_1
AS
    INSERT Table_1 (number) VALUES (100);
GO
调用方法:
SqlCommand cmd = new SqlCommand("proc_1", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
2.调用有参数有返回
CREATE PROC proc_2
    @result int OUTPUT,
    @number int,
    @tid int
AS
    UPDATE Table_1 SET number = number + @number WHERE tid = @tid;
    SELECT @result = number FROM Table_1;
GO
调用方法:
public static int exec_proc_2(int number, int tid)
{
    SqlCommand cmd = new SqlCommand("proc_2", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    // 添加一个名为@result的参数,数据类型为SqlDbType.Int
    cmd.Parameters.Add(new SqlParameter("@result", SqlDbType.Int));
    // 将@result参数设置为接收输出参数
    cmd.Parameters["@result"].Direction = ParameterDirection.Output;
    cmd.Parameters.AddWithValue("@number", number);
    cmd.Parameters.AddWithValue("@tid", tid);
    cmd.ExecuteNonQuery();
    // 将输出的Object数据转换成int类型
    int result = (int)cmd.Parameters["@result"].Value;
    return result;
}
3.调用返回一张表的存储过程并接收
CREATE PROC proc_3
AS
    SLECT * FROM Table_1;
GO
调用方法:
public static DataTable exec_proc_3()
{
    SqlCommand cmd = new SqlCommand("proc_3", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataTable table = new DataTable();
    da.Fill(table);
    return table;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值