を供給していなかった私は、ログインプロシージャまたは関数「ValidateUserLoginは」パラメータを期待「@UserName」、
ALTER PROCEDURE ValidateUserLogin
(
@UserName varchar (50),
@Password varchar (50)
)
AS
BEGIN
if EXISTS(SELECT * FROM AdminLogin WHERE [email protected] AND [email protected])
select 0/*returns 0 on success*/
ELSE
select 1/*non zero otherwise*/
END
を検証して、私は以下のコードを使用して、それを呼び出していますが、私は次の例外を取得するために、このストアドプロシージャを持っています"プロシージャまたは関数 'ValidateUserLogin'は、提供されなかったパラメータ '@UserName'を必要とします。
bool boolReturnValue = true;
SqlCommand command = new SqlCommand();
command.Connection = sqlConnection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "ValidateUserLogin";
command.Parameters.Add(@username,SqlDbType.VarChar,50).Value=username;
command.Parameters.Add(@password, SqlDbType.VarChar,50).Value=password;
sqlConnection.Open();
try
{
command.ExecuteScalar();
boolReturnValue=Convert.ToBoolean(command.ExecuteScalar());
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
と私は取得ヌルとしてユーザ名とパスワードのデフォルト値を設定しようとすると、例外 @adminは手順ValidateUserLogin // adminのパラメータではありませんが、ユーザー名
SQLストアドプロシージャを大文字と小文字を区別?私は思っていません – Mubarek
@nuux - これは、データベースのデフォルト照合に依存します。ほとんどの人はCS照合をしていません。しかし、最初のバージョンでは引用符がないため、変数の値が決まった後に名前をつけた名前をつけて送信しようとすると、間違いなく問題が発生します。これは両方の可能な問題に対処するために '' @UserName "'を持つべきです。 –
@MartinSmith - 申し訳ありませんが、私はそれに気付きました。可能であれば誰かがCS照合を持つことができます – Mubarek