#sql #asp.net
#sql #asp.net
Вопрос:
Для входа пользователя мы должны получить имя пользователя и пароль из двух разных таблиц, поскольку для student мы извлекаем их из Student_Main_Email
, а в случае факультета мы извлекаем их из Faculty_Revewier_Email
таблицы, поэтому в хранимой процедуре мы объединяем два запроса выбора, для Student_Main_Table
которых эта логика работает, но не для другого. Не могли бы вы предложить нам лучшее решение, как мы можем объединить эти два запроса.
ALTER procedure [dbo].[SpUserLogin]
@Email nvarchar(100),
@Password nvarchar(15)
as
Begin
select count(Email) from Student_Main_Email
where [Email]=@Email and [Password]=@Password
Union All
select count(Email) from Faculty_Reviewer_Email
where [Email]=@Email and [Password]=@Password
End
И ASP.NET Код
protected void Login_button_Click(object sender, EventArgs e)
{
string connectionstring = "Data Source=NADIR\SQLEXPRESS;Initial Catalog=PHD_System_new;Integrated Security=True";
SqlConnection con = new SqlConnection(connectionstring);
con.Open();
SqlCommand cmd = new SqlCommand("SpUserLogin", con);
SqlParameter paramusername = new SqlParameter("@Email", Login_Email.Value);
SqlParameter parampassword = new SqlParameter("@Password", Login_Password.Value);
cmd.Parameters.Add(paramusername);
cmd.Parameters.Add(parampassword);
cmd.CommandType = CommandType.StoredProcedure;
int returncode = (Int32)cmd.ExecuteScalar();
if (returncode == 1)
{
Session["LoginUserName"] = Login_Email.Value;
Server.Transfer("WebForm1.aspx");
//lblMessage.Text = "User Name or Password is valid.";
}
else {
lblMessage.Text = "Invalid User Name or Password.";
}
con.Close();
}
Комментарии:
1. Добавьте свой код в виде текста, а не в виде изображения
Ответ №1:
вы можете добавить вспомогательный столбец для определения источника каждой строки и выбора в соответствии с различными случаями:
select count(Email), 'student' as source from Student_Main_Email
where [Email]=@Email and [Password]=@Password
Union All
select count(Email), 'faculty' as source from Faculty_Reviewer_Email
where [Email]=@Email and [Password]=@Password
Комментарии:
1. Спасибо, сэр, позвольте мне попробовать
Ответ №2:
Alter proc login( --exec login 'ravi','123',''
@Email varchar(50),
@Password varchar(50),
@Msg varchar(50) output
)
as
begin
if exists(select * from student_mail_Email where @Email=Email and @Password=Password)
begin
select @Msg='Success'
end
else
if exists(select * from Faculty_Revewier_Email where @Email=Email and @Password=Password)
begin
select @Msg='Success'
end
else
begin
select @Msg='User Does not exists'
end
select @Msg
end