У меня есть эта хранимая процедура для проверки ВойтиПроцедура или функция «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 // админа этого значения, предоставляемое для пользователя
Вы предлагаете, чтобы хранимые процедуры SQL были деликатный случай? Я думал, что не – Mubarek
@nuux - Это зависит от настройки базы данных по умолчанию. У большинства людей нет сопоставлений CS. Но отсутствие кавычек в первой версии определенно вызовет проблему, поскольку она попытается представить параметры, названные в честь того, что когда-либо было значением переменных. Это должно иметь '' @UserName "для решения обеих возможных проблем. –
@MartinSmith - Извините, I'vent заметил квотацию. Когда возможно, у кого-то есть сопоставления CS – Mubarek