Как я могу получить идентификационный номер элемента в модели данных объекта - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь проверить информацию для входа в систему ,, и получить идентификатор элемента, если они правильные ,,, В противном случае показать сообщение об ошибке ввода мой код:

var getid = from user in db.tables
            where user.name == tbusername.Text && user.password == tbpassword.Text
            select user.Id;

c = Int32.Parse(getid);

но против говорят, что есть ошибка в c = Int32.Parse(getid); Что не так?

1 Ответ

0 голосов
/ 30 июня 2018

Вы не можете преобразовать список в целое число. Where возвращает коллекцию (или лучше сказать IEnumerable). Вы помещаете список чего-либо в пробел (Int32.Parse), который хочет только 1 из чего-то.

Также, если ваш Id - int, вам не нужно его анализировать

Пример

var getid = (from user in db.tables
            where user.name == tbusername.Text && user.password == tbpassword.Text
            select user.Id).FirstOrDefault();

// or
var getid = db.tables.Where(user => user.name == tbusername.Text && user.password == tbpassword.Text)
                     .Select(user => user.Id)
                     .FirstOrDefault();

if(getid == null)
{
    MessageBox.Show("Oh nooez!!!");
    return;
}

MessageBox.Show("You is id : " + getid );

Метод Enumerable.FirstOrDefault (IEnumerable)

Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов.

Метод Enumerable.Where (IEnumerable, Func)

Фильтрует последовательность значений на основе предиката.

Возвращаемое значение

Тип: System.Collections.Generic.IEnumerable An IEnumerable, содержащий элементы из входной последовательности, которые выполнить условие.

...