大哥帮帮我!!!
我的表:
      ID     username     usertype存储过程:
     CREATE PROC P_GetInfo
@id int,
@username varchar(50) output
 AS
begin
select *  from T_My_Test where ID=@id;
RETURN
end
GO
调用存储过程输出参数@username:
function
{
  ..../打开链接
  myCommand.Parameters.Add(new SqlParameter("@id",SqlDbType.Int));//添加参数
  myCommand.Parameters["@id"].Value =1;
  SqlParameter paramID = new SqlParameter("@username",SqlDbType.VarChar);
  paramID.Direction = ParameterDirection.ReturnValue;
  myCommand.Parameters.Add(paramID);
.....//绑定数据
  输出参数:
}提示错误:   过程 'P_GetInfo' 需要参数 '@username',但未提供该参数

解决方案 »

  1.   

    paramID.Direction = ParameterDirection.ReturnValue;这里写错了,不是RETURNVALUE,应该是OUTPUT的
      

  2.   

    你这样写得不到那个值,因为没有返回值啊应该改成如下:存储过程:
         CREATE PROC P_GetInfo
    @id int,
    @username varchar(50) output
     AS
    begin
    select @username=username  from T_My_Test where ID=@id;
    RETURN
    end
    GO
      

  3.   

    paramID.Direction = ParameterDirection.OutPut;还有就是你的存储过程似乎并没有对@username 赋值
    可以
    BEGIN
    select @username= (select username  from T_My_Test where ID=@id)
    END
      

  4.   

    SqlParameter OutputValue = dbCmd.Parameters.Add("@username", SqlDbType.VarChar, 30); // 添加存储过程OUTPUT参数 OutputValue        
            OutputValue.Direction = ParameterDirection.Output;
            OutputValue.Value = "";
    存储过程:
         CREATE PROC P_GetInfo
    @id int,
    @username varchar(50) output
     AS
    begin
    select @username=username  from T_My_Test where ID=@id;
    RETURN
    end
    GO
      

  5.   

    有了output就没必要return了。。
    要return就没必要output
      

  6.   

    参数 1: String 类型的“@username”,Size 属性具有无效大小值: 0是怎么回事呀!!!!