Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141

Проверить наличие записи в БД

28.05.2021, 12:05. Показов 7698. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Я пытаюсь создать страницу для входа в систему для волонтера. После того, как пользователь введет логин и пароль и нажмет "Войти", я должна проверить, есть ли запись о таком волонтере в БД (БД находится в этом же проекте в папке App_Data). В бд хранятся не только email и пароль волонтера, но и ФИО. Как можно проверить, есть ли такой пользователь в БД, если у меня только 2 поля известны? На sql знаю как, тут не могу понять.
В контроллере создала метод с тестовым выводом. Ни тот, ни другой вариант if не работает, точнее выводит ошибку, что я хочу удалить бд, но это не возможно, тк она используется. А я вроде и не пытаюсь ее удалить

Подскажите пожалуйста, что не так

C#
1
2
3
4
5
6
7
8
[HttpPost]
        public string Auth(string Email, string password)
        {
            //if (db.StaffVolunteers.Select(s=>s).Where(s=> s.Email==Email&&s.Password==password).ToList().Count() >0)
            if (db.StaffVolunteers.ToList().Contains(new StaffVolunteer {Email=Email, Password=password}))
            return "Вы вошли в систему";
            return "Вы не вошли в систему";
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2021, 12:05
Ответы с готовыми решениями:

Проверить наличие записи
Добрый день! Все просто и старо как мир. Есть таблица1 со своим ключевым полем (типа счетчик поле1). К этой таблице привязаны смежные...

Проверить наличие записи
Здравствуйте есть код, вывода IP. private FUNCTION GetRealIp() { IF (!empty($_SERVER)) { $ip=$_SERVER; } elseif...

Как проверить наличие записи в бд?
бд firebird 2.5 FbCommand SelTabNo = new FbCommand("SELECT Count(TAB_NO) FROM UCHASTKOVUI WHERE TAB_NO="+TabNoTB.Text, policy_db); ...

3
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
28.05.2021, 15:43
C#
1
2
3
4
if (db.StaffVolunteers.FirstOrDefault(x => x.Email == Email && x => x.Password == password) != null)
   return "Вы вошли в систему";
else
   return "Вы не вошли в систему";
Добавлено через 14 минут
Вообще-то должно быть так:
Модель:
C#
1
2
3
4
5
6
7
8
public class StaffVolunteers
{
    int Id { get; set; }
    string Email { get; set; }
    string Password { get; set; }
    string FIO { get; set; }
     ....  
}
Контроллер:
C#
1
2
3
4
5
6
7
8
9
10
11
12
[HttpPost]
        public ActionResult Auth(StaffVolunteers SV)
        {
            StaffVolunteers sv = db.StaffVolunteers.FirstOrDefault(x => x.Email == SV.Email 
                      && x => x.Password == SV.password);
            if (sv != null)
                return View("Index", sv);
            else
            {
                ViewBag.ErrorText = "Пользователя с указанными EMail и паролем нет в системе";
                return Auth();
        }
Представление Auth:
HTML5
1
2
3
4
      ...
    <div>
         @ViewBag.ErrorText
    </div>
Добавлено через 9 минут
Т.е. логика простая.
1. Юзер что-то ввел и к Вам в метод контролера прилетела модель (MVC постарался) с двумя заполненными полями, переданными в HTTP Клиентом
2. В таблице БД ищется по этим двум полям запись-модель
3. Если запись-модель найдена, то она передается рэйзору, который, строя разметку, рассовывает по элементам все, что нужно, например, приветствие с ФИО и id в input type="hidden", а также другие атрибуты профиля юзера, необходимые для правильных выборок именно для этого юзера последующих запросов. Клиенту возвращается заглавная страничка Index.
4. Если пользователь не найден, то возвращается страничка авторизации, но в ней будет сообщение, которой рэйзор вытащит из "сумки"
1
2 / 2 / 0
Регистрация: 08.03.2020
Сообщений: 141
29.05.2021, 13:04  [ТС]
Спасибо за такой подробный ответ! Только вот вставила Ваш код к себе, подчеркивает, как ошибка. Не могу понять, как это починить.
Цитата Сообщение от MsGuns Посмотреть сообщение
StaffVolunteers sv = db.StaffVolunteers.FirstOrDefault(x => x.Email == SV.Email
                      && x => x.Password == SV.password);
Миниатюры
Проверить наличие записи в БД  
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
29.05.2021, 13:30
C#
1
2
db.StaffVolunteers.FirstOrDefault(x => x.Email == SV.Email 
                      &&  x.Password == SV.password)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2021, 13:30
Помогаю со студенческими работами здесь

Проверить таблицу на наличие записи
Добрый вечер вопрос в следующем необходимо проверить таблицу на наличие определенной записи login =...

Как проверить на наличие записи в БД
Нужно перед добавления пользователя в базу данных проверить на уникальность логин пользователя. Код работает, но как заносил пользователей...

Проверить наличие записи в mySQLi
Здравствуйте, заношу данные в базу вот таким способом: &lt;?php require &quot;vender/config/database.php&quot;; $conn = new...

Проверить наличие записи Access
Есть код, который удаляет запись по определенному номеру, но нужна проверка, которая бы говорила: да, данный номер есть, удаляем, либо, нет...

Как проверить таблицу на наличие записи
Делаю отдельную регистрацию, подскажите как проверять не занят ли логин другим человеком с учетом регистра...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru