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

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

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

如何从存储过程中读取参数设置?--添加新用户
如何从存储过程中读取参数设置?CREATEPROCEDUREdbo.usp_User_Insert
如何从存储过程中读取参数设置?
@usernamevarchar(16),--用户名
如何从存储过程中读取参数设置?@pwdvarchar(16),--密码
如何从存储过程中读取参数设置?@emailvarchar(50),--Email
如何从存储过程中读取参数设置?AS
如何从存储过程中读取参数设置?
如何从存储过程中读取参数设置?
--添加到用户表
如何从存储过程中读取参数设置?INSERTINTOT_User
如何从存储过程中读取参数设置?(
[username],[pwd],[email],
如何从存储过程中读取参数设置?
VALUES
如何从存储过程中读取参数设置?(@username,@pwd,@email)
如何从存储过程中读取参数设置?
如何从存储过程中读取参数设置?
GO
如何从存储过程中读取参数设置?

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

如何从存储过程中读取参数设置?SqlParameter[]insertParams=newSqlParameter[]
如何从存储过程中读取参数设置?如何从存储过程中读取参数设置?
{
如何从存储过程中读取参数设置?
newSqlParameter("@username",SqlDbType.VarChar),
如何从存储过程中读取参数设置?
newSqlParameter("@pwd",SqlDbType.VarChar),
如何从存储过程中读取参数设置?
newSqlParameter("@email",SqlDbType.VarChar),
如何从存储过程中读取参数设置?}
;

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

代码如下:

如何从存储过程中读取参数设置?using(SqlConnectioncn=newSqlConnection(connectionString))
如何从存储过程中读取参数设置?
using(SqlCommandcmd=newSqlCommand(spName,cn))//spName为存储过程名称
如何从存储过程中读取参数设置?如何从存储过程中读取参数设置?{
如何从存储过程中读取参数设置?cn.Open();
如何从存储过程中读取参数设置?cmd.CommandType
=CommandType.StoredProcedure;
如何从存储过程中读取参数设置?
如何从存储过程中读取参数设置?
//设置SqlCommand中存储过程的参数
如何从存储过程中读取参数设置?SqlCommandBuilder.DeriveParameters(cmd);
如何从存储过程中读取参数设置?
如何从存储过程中读取参数设置?
//存储过程的参数集合
如何从存储过程中读取参数设置?SqlParameter[]selectParams=newSqlParameter[cmd.Parameters.Count];;
如何从存储过程中读取参数设置?
如何从存储过程中读取参数设置?cmd.Parameters.CopyTo(selectParams,
0);
如何从存储过程中读取参数设置?}