从存储过程中读取参数设置

先写一个简单的存储过程,实现添加一个用户的功能:

--  添加新用户
CREATE   PROCEDURE  dbo.usp_User_Insert
    
@username   varchar ( 16 ) ,     --  用户名
     @pwd   varchar ( 16 ) ,         --  密码
     @email   varchar ( 50 ),         --  Email
AS  

--  添加到用户表
INSERT   INTO  T_User
(
[ username ] , [ pwd ] , [ email ] ,
VALUES
(
@username , @pwd , @email )

GO

如果手动为为存储过程准备参数 ,是像这样写的:

            SqlParameter[] insertParams  =   new  SqlParameter[]
            
{
                
new SqlParameter ("@username",SqlDbType .VarChar ),
                
new SqlParameter ("@pwd",SqlDbType .VarChar ),
                
new SqlParameter ("@email",SqlDbType .VarChar ),
            }
;

如果从存储过程中直接读取insertParams,只要用ConnectString和存储过程名生成一个SQLCommand,再执行 SqlCommandBuilder.DeriveParameters(SQLCommand)命令就可以自动根据存储过程中设置为SQLCommand准备好参数.最后再通过cmd.Parameters.CopyTo(selectParams,0)来获取参数selectParams.

代码如下:

using  (SqlConnection cn  =   new  SqlConnection(connectionString))
using  (SqlCommand cmd  =   new  SqlCommand(spName,cn)) // spName为存储过程名称
{
    cn.Open();
    cmd.CommandType 
= CommandType.StoredProcedure;

    
//设置SqlCommand中存储过程的参数
    SqlCommandBuilder.DeriveParameters(cmd);

    
//存储过程的参数集合
    SqlParameter[] selectParams = new SqlParameter[cmd.Parameters.Count];;

    cmd.Parameters.CopyTo(selectParams , 
0);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值