Как получить несколько значений столбцов из БД в переменных сеанса при входе в систему
Я хочу получить UID, имя пользователя, город, адрес электронной почты из регистрационной таблицы в БД sql server при успешном входе пользователя.
Я хочу сохранить эти значения в переменных сеанса.
plz помогите мне с кодом и решением
ниже приведен мой код
Что я уже пробовал:
protected void ValidateUser(object sender, EventArgs e) { int userId = 0; string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("Validate_User")) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Username", txtUname.Text.Trim()); cmd.Parameters.AddWithValue("@Password", txtPassword.Text.Trim()); cmd.Connection = con; con.Open(); SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt); userId = Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); if (dt.Rows.Count > 0) { Session["uid"] = dt.Columns[0].ToString(); Session["Username"] = dt.Columns[1].ToString(); Session["city"] = dt.Columns[2].ToString(); Response.Redirect("Redirectform.aspx"); Session.RemoveAll(); } else { lblmsg.Text = "You're username and word is incorrect"; lblmsg.ForeColor = System.Drawing.Color.Red; } } switch (userId) { case -1: lblmsg.Text = "Username and/or password is incorrect."; break; case -2: lblmsg.Text = "Account has not been activated."; break; default: //FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet); break; } } }
Это моя хранимая процедура .. проверенный пользователь
ALTER PROCEDURE [dbo].[Validate_User] @Username NVARCHAR(20), @Password NVARCHAR(20) AS BEGIN SET NOCOUNT ON; DECLARE @UserId INT, @LastLoginDate DATETIME SELECT @UserId = UserId, @LastLoginDate = LastLoginDate FROM Users WHERE Username = @Username AND [Password] = @Password IF @UserId IS NOT NULL BEGIN IF NOT EXISTS(SELECT UserId FROM UserActivation WHERE UserId = @UserId) BEGIN UPDATE Users SET LastLoginDate = GETDATE() WHERE UserId = @UserId SELECT @UserId [UserId] -- User Valid END ELSE BEGIN SELECT -2 -- User not activated. END END ELSE BEGIN SELECT -1 -- User invalid. END END