Создание формы входа в систему C# - PullRequest
0 голосов
/ 08 мая 2020

Я хочу создать форму входа, и когда пользователь записывает пользователя и проходит, я хочу найти RoleId, который может сообщить нам, что этот пользователь должен войти в систему как оператор или менеджер или что-то еще, но я не могу найти, как читать Ролиид из таблицы?

private void btn_sin_Click(object sender, EventArgs e)
        {
            byte[] b = System.Text.Encoding.UTF8.GetBytes(txt_pass.Text);
            System.Security.Cryptography.SHA1 h = System.Security.Cryptography.SHA1.Create();
            byte[] hashed = h.ComputeHash(b);

            var txtEncrptedPass = Convert.ToBase64String(hashed);

            var query = Obj_db.Tbl_Login.Where(s => s.UserName == txt_Username.Text & s.Password == txtEncrptedPass).ToList();

            if (query.Count != 0)
            {

                DataTable dt = new DataTable();

                var m =Convert.ToInt32( query.Select(a => a.RoleId.Value).ToList());
                if (m==1)
                {
                    Main_form main = new Main_form();
                       main.Show();
                }

            }
            else
            {
                MessageBox.Show(" SignIn error! \n username or password entered incorrectly");
            }

этот код показывает мне ошибку приведения !!

1 Ответ

0 голосов
/ 08 мая 2020

Вы пытаетесь преобразовать список в длинный.

Что вы должны сделать, чтобы преобразовать одно значение, используя First() или FirstOrDefault().

Без тестирования, измените это: от

var m = Convert.ToInt32(query.Select(a => a.RoleId.Value).ToList());

до

var m = Convert.ToInt32(query.Select(a => a.RoleId.Value).First());

Это должно решить вашу проблему.

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