如何以胜利形式管理用户会话?

时间:2019-12-01 15:53:08

标签: c# mysql winforms session ado.net

我已经尝试管理用户会话,但是问题是我无法访问数据库中的其他属性,因为它们不在对象中。

 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。

0 个答案:

没有答案