ParameterDirection

来源:互联网 发布:数据清理工作方案 编辑:程序博客网 时间:2024/06/04 22:23

1). .Net中的参数定义为形式参数 而把存储过程的参数定义为实际参数;

    2). 数据库存储过程的实际参数如果没有默认值则形式参数必须传值给实际参数;

    3). 但是如果形式参数的类型为ParameterDirection.Output 则传给实际参数的永远是空值;ParamenterDirection.Inupt为默认值,只可输入

    4). 如果形式参数的类型为ParameterDirection.ReturnValue 则形式参数不会传值给实际参数 实际参数必须有默认值 否则代码会报错;

    5). 如果形式参数类型为ParameterDirection.InputOutput 或者 ParameterDirection.Output 则实际参数必须有output 关键字.

--------------------------------------------------------------------------------------------------------------------------

例:ParameterDirection.ReturnValue 的用法

SqlCommand mycom = usercommon.createcommand();
  mycom.CommandText = "ModifyUserPwd";
  SqlParameter[] parm = {
   new SqlParameter("@username", SqlDbType.VarChar, 50),
   new SqlParameter("@userpwd", SqlDbType.VarChar, 50),
   new SqlParameter("@newpwd", SqlDbType.VarChar, 50),
   new SqlParameter("@returnvalue",SqlDbType.Int)
   };
  parm[0].Value=username;
  parm[1].Value=oldpwd;
  parm[2].Value=newpwd;
  parm[3].Direction = ParameterDirection.ReturnValue;'返回数据库中return的值(即本代码中的1或0)
  usercommon.AttachParameters(mycom,parm);
  mycom.ExecuteNonQuery();
  int i =(Int32) mycom.Parameters["@returnvalue"].Value;
  usercommon.CloseConn();
  return i;
  
  存储过程
  
  alter proc ModifyUserPwd
  (
  @username varchar(50),
  @userpwd varchar(50),
  @newpwd varchar(50)
  )
  as
  declare @pwd varchar(50)
  select @pwd=userpwd from users
  if(@pwd=@userpwd)
  begin
  update users set userpwd=@newpwd where username=@username
  return 1
  end
  else
  return 0
  go


原创粉丝点击