سلام
به اینصورت اصلاح بفرمائید
Stored Procedure
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE sp_CheckUsernamePassword
@username nvarchar(100),
@password nvarchar(max) output,
@UserID int output
AS
BEGIN
SET NOCOUNT ON;
SELECT top 1 @password = [Password], @UserID =[User_ID] FROM [OstSMS].[dbo].[Users] where UserName = @username
END
GO
کدتون هم به اینصورت
string Check_Result;
string Password = "123";
int UserID = 0;
var cmd = new SqlCommand("sp_CheckUsernamePassword", con)
{
CommandType = CommandType.StoredProcedure,
CommandText = "sp_CheckUsernamePassword"
};
cmd.Parameters.AddWithValue("@Username", "Admin");
cmd.Parameters.Add("@Password", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
cmd.Parameters.Add("@UserId", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
var getPassword = cmd.Parameters["@Password"].Value.ToString();
var getUserId = Convert.ToInt32(cmd.Parameters["@UserId"].Value);
con.Close();
MessageBox.Show(getPassword);
using (MD5 md5Hash = MD5.Create())
{
string hash = GetMd5Hash(md5Hash, Password);
if (VerifyMd5Hash(md5Hash, Password, getPassword))
{
Check_Result = "true";
UserID = getUserId;
}
else
{
Check_Result = "false";
}
}
موفق باشید.