Как управлять сеансом пользователя в выигрышных формах? - PullRequest
0 голосов
/ 01 декабря 2019

Я пытался управлять сеансом пользователя, но проблема в том, что я не могу получить доступ к другим атрибутам в базе данных, поскольку их нет в объекте.

 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 в этом проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...