想通过用户名找到相应的密码
若数据库中有一个存储过程名为:'getPassword',其传入参数为@name,传出参数为@pass
想通过ADOCommand来实现,应该怎样写。
尽量写得具体点,谢谢

解决方案 »

  1.   

    创建存储过程:
    ADOCommand1.CommandText:='CREATE PROCEDURE getPassword(@name nvarchar(20), '
         +'@pass nvarchar(30) OUTPUT) AS '
         +'select @pass=passField '
         +'from passTable '
         +'where username=@name';
    ADOCommand1.Execute;调用:
    ADOCommand1.CommandText:='exec getPassword :p1,:p2';
    ADOCommand1.Parameters.ParamValues['p1']:='yourname';
    ADOCommand1.Parameters.ParamValues['p2']:='';
    ADOCommand1.Execute;
    yourpass:=ADOCommand1.Parameters.ParamByName('p2').value;
      

  2.   

    楼主差了一个output没写
    正确为:创建存储过程:
    ADOCommand1.CommandText:='CREATE PROCEDURE getPassword(@name nvarchar(20), '
         +'@pass nvarchar(30) OUTPUT) AS '
         +'select @pass=passField '
         +'from passTable '
         +'where username=@name';
    ADOCommand1.Execute;调用:
    ADOCommand1.CommandText:='exec getPassword :p1,:p2 output';
    ADOCommand1.Parameters.ParamValues['p1']:='yourname';
    ADOCommand1.Execute;
    yourpass:=ADOCommand1.Parameters.ParamByName('p2').value;