ALTER PROCEDURE dbo.spLogin
(
@lName varchar,
@lschoolID int,
@lPassword varchar OUTPUT
)
AS
    SELECT fldUserLoginPassword 
    from tbUser 
    where fldUserLoginName = @lName and 
    fldDefaultSchoolID = @lschoolID;
        /* SET NOCOUNT ON */ 
RETURN
这是我创建的一个存储过程.因为在vs中还要继续用到lPassword,所以要输出这个字段,请问这个存储过程能输出lPassword吗?
  还有在接下来的程序中怎么引用这个存储过程的输出结果呢?

解决方案 »

  1.   

    OUT是一种参数  不做为返回值
    初始化的时候,标记参数类型为OUTPUT  随便给一个值
    执行玩NONQUERY或者其他后
    直接试用那个参数就行
    比如
    string s = p[i].value.tostring();
      

  2.   

    LZ 存储过程要改一点:ALTER PROCEDURE dbo.spLogin
    (
    @lName varchar,
    @lschoolID int,
    @lPassword varchar OUTPUT
    )
    AS
        SELECT @lPassword = fldUserLoginPassword     -- 注意
        from tbUser 
        where fldUserLoginName = @lName and 
        fldDefaultSchoolID = @lschoolID;
      

  3.   

    请问JimwmmailJI,为什么要select @lPassword = fldUserLoginPassword呢?
    不是直接SELECT一个字段就可以的了吗/
      

  4.   

    Mirricle:  那个p[i].value是什么啊.是存储过程中的output参数吗?
      

  5.   

    有的数据库的out 参数不管用  如版本比较老一点的sybase
    至于如何从存储过程返回结果
    见:http://www.cnblogs.com/tuyile006/archive/2007/04/12/710901.html
      

  6.   

    Create PROC dbo.spLogin
    (
    @lName varchar,
    @lschoolID int,
    @lPassword varchar OUTPUT
    )
    AS
        --使用Select给变量赋值
        SELECT @lPassword = fldUserLoginPassword     
        from tbUser 
        where fldUserLoginName = @lName and 
        fldDefaultSchoolID = @lschoolID;
      

  7.   

    在程序中引用com.Parameters.Add("@lPassword ",SqlDbType.VarChar);
    com.Parameters["@lPassword "].Direction=ParameterDirection.Output;
    执行完后
    得到值 取值
    com.Parameters["@lPassword "].value
      

  8.   

    还有些地方的@@error是什么东西啊?