我已经尝试管理用户会话,但是问题是我无法访问数据库中的其他属性,因为它们不在对象中。
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
我需要从数据库中获取老师的ID,即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存储在另一个表中,该数据库还将添加在数据库中添加内容的用户的ID。因此,为此,我想获取相应用户会话的t_id。
在此项目中,我使用了ado.net和Linq。