Я пытался управлять сеансом пользователя, но проблема в том, что я не могу получить доступ к другим атрибутам в базе данных, поскольку их нет в объекте.
Teacher t = new Teacher
{
t_email = textBox_Login_Email.Text,
t_password = textBox_Login_Pass.Text,
};
Другими атрибутами являются t_id и t_name. Я могу получить доступ к этим двум, используя следующий код
session.Instance.user.t_email
session.Instance.user.t_password
Мне нужно получить идентификатор Учителя, который является t_id из базы данных. Я сохраняю объект "t" в объекте сеанса, используя
session.Instance.user = t;
Ниже приведен код для моего класса сеанса и класса входа в систему session.cs
public class session
{
#region Define as Singleton
private static session _Instance;
public static session Instance
{
get
{
if(_Instance == null)
{
_Instance = new session();
}
return (_Instance);
}
}
private session()
{
}
#endregion
public Teacher user { get; set; }
public bool isLoggedIn
{
get
{
if (user != null)
return true;
else return false;
}
}
}
login.cs
namespace TestBoardAdmin
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
private void button_Login_Click(object sender, EventArgs e)
{
using (examEntities obj = new examEntities())
{
Teacher t = new Teacher
{
t_email = textBox_Login_Email.Text,
t_password = textBox_Login_Pass.Text,
};
//var x = obj.Teachers.Where(a => a.t_email == t.t_email).Select(a => new { a.t_id });
var y = obj.Teachers.Where(a => a.t_email == t.t_email && a.t_password == t.t_password);
if (y.Count() > 0)
{
MessageBox.Show("Logged In succesfully");
textBox_Login_Email.Clear();
textBox_Login_Pass.Clear();
//this.Close();
session.Instance.user = t;
Chose_Action chose_action = new Chose_Action();
chose_action.Show();
//return 1;
}
else
{
//ViewBag.SuccessMessage = "Wrong Email or Password";
//return 0;
MessageBox.Show("Email or Password Incorrect");
//textBox_Login_Email.Clear();
textBox_Login_Pass.Clear();
}
}
}
private void textBox_Login_Email_TextChanged(object sender, EventArgs e)
{
}
private void textBox_Login_Pass_TextChanged(object sender, EventArgs e)
{
}
}
}
Я действительно хочу сохранить соответствующий t_id в другой таблице, когда пользователь добавляет в базу данных, база данных также добавит идентификатор пользователя, который что-то добавил в базу данных. Итак, для этого я хочу получить t_id соответствующего сеанса пользователя.
Я использовал ado.net и Linq в этом проекте.