这是我的程序:如何从存储过程获得Windows窗体C#返回值
DECLARE @ReturnValue int
SELECT @ReturnValue = idUser
FROM Users
WHERE Alias = @UserAlias AND Password = @UserPassword
RETURN @ReturnValue
这是我的C#代码,我倒是希望我可以检索的程序价值:
TeamPWSecureBD.Open(); //Open SQL Connection
string alias = textBoxUsernameLogin.Text.Trim();
string pass = textBoxPasswordLogin.Text;
SqlCommand LoginVerify = new SqlCommand("_spUserVerify", TeamPWSecureBD);
LoginVerify.CommandType = CommandType.StoredProcedure;
LoginVerify.Parameters.AddWithValue("@UserAlias", alias);
LoginVerify.Parameters.AddWithValue("@UserPassword", pass);
SqlDataReader UserVerify = LoginVerify.ExecuteReader();
//Se o valor retornado pelo sp for 0 significa que o user não existe.
//O sp retorna o id do utilizador se o username e a password estiverem corretas.
//O id de utilizador menor é o 7.
if (Convert.ToInt32(UserVerify.GetSqlValue(0)) == 0)
MessageBox.Show("Invalid username/password.", "Login Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
GlobalVariables.UserLoggedIn = Convert.ToInt32(UserVerify.GetSqlValue(0));
PWLists MainForm = new PWLists();
MainForm.ShowDialog();
this.Close();
}
当我在SQL Server中执行过程时,返回的值是正确的。
但是,一旦我尝试在它与错误崩溃的形式来阅读:如果你想赶上
RETURN @ReturnValue
它工作得很好,感谢您的时间! – walkman