私はsqlを初めて使用しています。ストアドプロシージャに何が問題なのかよく分かりません。私の入力パラメータであり、それが正しいかどう国連が「正しくない国連復帰よりも、間違っている場合やPWは「誤ったPW」を返すよりも、間違っている場合は、その後、「ログイン成功」を返すストアドプロシージャでユーザーを認証
ユーザ入力ユーザー名&パスワード。ストアドプロシージャでは、私はIF Elseステートメントを持っており、それ以外のステートメントでは最初のIF
ステートメントには当てはまりません。
私のストアドプロシージャを見ていてください:上)
CREATE PROCEDURE [dbo].[AuthenticateUser]
@UserName varchar(15),
@Password varchar(15),
@Role varchar(25) OUTPUT
AS
SET NOCOUNT ON
BEGIN
DECLARE @UN VARCHAR(25)
DECLARE @PW VARCHAR(25)
SELECT @UN = UserName, @PW = Password FROM LogIn
IF (@UN != @UserName COLLATE SQL_Latin1_General_CP1_CS_AS)
BEGIN
SET @Role = 'Incorrect User Name'
END
ELSE
BEGIN
IF (@PW != @Password COLLATE SQL_Latin1_General_CP1_CS_AS)
BEGIN
SET @Role = 'Incorrect Password'
END
ELSE
BEGIN
SET @Role = 'Logged in Successfully'
END
END
SELECT @Role
END
はあなたの助けのためにuserloginのFROM SELECT COUNT(1)へ
だから、 'LogIn'テーブルからいくつかのランダムな行を選択し、渡された値と比較するのは正しいでしょうか? –
コードは正常に動作します。パラメータを正しく渡してもよろしいですか? –
こんにちはLashane、あなたの迅速な返信のおかげで、ありがとう私のコードはSqlCommand comm =新しいSqlCommand( "AuthenticateUser"、MyConnection.MyConn( "Open")); comm.CommandType = CommandType.StoredProcedure; comm.Parameters.Add( "@ UserName"、SqlDbType.VarChar).Value = userName.Text; comm.Parameters.Add( "@ Password"、SqlDbType.VarChar).Value = Password.Text; comm.Parameters.Add( "@ Role"、SqlDbType.VarChar、25); comm.Parameters ["@ Role"]。Direction = ParameterDirection.Output; comm.ExecuteNonQuery(); employee.UserRole =(comm.Parameters ["@ Role"]。Value).ToString(); – bigbapu