探讨一个ADO.NET 2.0下一个获取存储过程返回值的有关问题

探讨一个ADO.NET 2.0下一个获取存储过程返回值的问题
疑问情况:
我要获取一个存储过程RETURN回的INT值,通过“.Parameters.Add(New   SqlClient.SqlParameter( "Return ",   SqlDbType.Int,   4,   ParameterDirection.ReturnValue))”这样的方法一直出错,报告“调用的存储过程参数过多”。尝试N次,分别更换过 "Return ", "@Return ", "ReturnValue ",甚至删除这个Parameter.Name,运行后都提示相同错误——“参数过多”

后来,我索性新建了一个Parameter对象,仅仅做了一个Direction设置,然后ADD进Parameters。运行后查看Value,有正确的返回值。

程序是运行成功了,但是这种做法让我感觉,代码看上去很不爽。不知道各位是否有这方面经验,我依然希望能够用1行代码解决问题。

存储过程如下:
--------------------------------------
--验证用户名以及口令,正确通过的,过程返回0,用户名错误的,返回-200,密码错误的,返回-201
--2007.5.4
CREATE   PROCEDURE   VerifyID  
@UserID   varchar(50),
@Password   varchar(50)
AS
DECLARE
@thispassword   varchar(50)
DECLARE   uspw   CURSOR   Read_only
FOR   SELECT   Password
FROM   [User]
WHERE   [User].UserID=@UserID
OPEN   uspw
FETCH   uspw   INTO   @thispassword
IF   @@Fetch_status   =   0
BEGIN
IF   @thispassword=@Password
--通过验证
RETURN   0
ELSE
RETURN   -201
END  
ELSE
RETURN   -200
GO

VB.NET   2005的代码如下
-------------------------------------
Dim   DotNetConn   As   SqlClient.SqlConnection   =   New   SqlClient.SqlConnection
Dim   fs_dbDataSet1   As   New   fs_dbDataSet
Dim   mycommand   As   SqlClient.SqlCommand   =   New   SqlClient.SqlCommand( "VerifyID ",   DotNetConn)
Dim   myIE   As   New   System.Diagnostics.Process
Dim   intSP   as   integer
DotNetConn.ConnectionString   =   "; "
DotNetConn.Open()
Dim   ret0   As   New   SqlClient.SqlParameter

With   mycommand
                        .CommandType   =   CommandType.StoredProcedure
                        .Parameters.Add(New   SqlClient.SqlParameter( "@UserID ",   UsernameTextBox.Text))
                        .Parameters.Add(New   SqlClient.SqlParameter( "@Password ",   PasswordTextBox.Text))
                        ret0.Direction   =   ParameterDirection.ReturnValue
                        .Parameters.Add(ret0)
                        .ExecuteNonQuery()
                        intSP   =   ret0.Value
                        MsgBox(intSP.ToString)
End   With

------解决方案--------------------
关注
------解决方案--------------------
分就不要给我了,我也是新手。
我觉得就是这样的,只能设置方向。我还是尽量避免取用存储过程的返回值,感觉和它打交道还是比较麻烦的,还是用SQL查询返回结果吧。
存储过程也就是快点,但要分场合。我一般用存储过程处理大数据量的工作,比如导入导出。小量多次的操作,数据库优化足够解决了,不必用存储过程。

想在一句话里解决问题,就算是解决了,也很费解,不是么?
------解决方案--------------------
建议:
不要返回那些INT,直接用文字,不然有一天,你会晕的。
------解决方案--------------------