|
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 51
|
|
Проверка на вход27.05.2013, 13:05. Показов 6993. Ответов 21
Метки нет (Все метки)
Здравствуйте. Существует 2 формы, первая с полем для ввода логина и пароля и кнопкой "войти". логин и пароль хранятся в БД ms sql. При правильном вводе логина и пароля и нажатие кнопки "войти" мы переходим на вторую форму, и соответственно, при неправильном вводе вылетает ошибка. Как сделать проверку на вход?
0
|
|
| 27.05.2013, 13:05 | |
|
Ответы с готовыми решениями:
21
Проверка пользователя на вход Проверка на вход почты Проверка на первый вход на сайт |
|
3 / 3 / 2
Регистрация: 03.01.2012
Сообщений: 66
|
|
| 27.05.2013, 13:10 | |
|
Сравниваешь введенные данные с данными в БД если совпадают то переходишь ко второй форме.
0
|
|
|
55 / 55 / 8
Регистрация: 06.02.2013
Сообщений: 317
|
|
| 27.05.2013, 13:12 | |
|
выбираешь запросом из базы строку с пользователями where login = 'введённый логин'. Если такая строка есть и password = 'введённому паролю' то открываешь вторую форму. Если запрос вернул 0 строк либо пароли не совпадают - пишешь сообщение
0
|
|
|
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
|
|
| 27.05.2013, 16:05 | |
|
D@niil, если хотите выполнить проверку пользователя перед появлением окна главной формы вызовите диалог формы-входа в Program.cs перед Application. ...
если диалог завершиться неудачей, то выполните return, иначе программа продолжится и запустит главную форму приложения
0
|
|
|
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 51
|
||||||
| 28.05.2013, 19:09 [ТС] | ||||||
|
проблема в сравнении введенных данных с хранящимися в базе... Либо я не правильно сравниваю, либо БД не соединилась. вот код:
0
|
||||||
|
179 / 48 / 6
Регистрация: 23.06.2011
Сообщений: 248
|
||||||
| 28.05.2013, 21:38 | ||||||
|
у тебя запрос не тот, что надо. Тебе надо взять введенный логин и пароль, а затем найти в бд строку с id = логин, и password = пароль.
Например:
После запроса смотришь, какое значение вернулось в ответ. Если * запрашивал, то по кол-ву строк (опять же, ноль или один), если count - то число 0 или 1. А дальше показываешь или не показываешь главное окно или что там надо.
0
|
||||||
|
|
|
| 28.05.2013, 23:01 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 51
|
|
| 29.05.2013, 01:34 [ТС] | |
|
благодарю, понял косяк)
но при таком запросе: select * from <Название таблицы> where id = log, password = pass вылетает ошибка "неправильный синтаксис строки ',' " если подставляю and вместо запятой, то пишет "Недопустимое имя столбца log, pass" у строки SqlDataReader sqlRead = sqlCmd.ExecuteReader(); при таком запросе: SELECT COUNT(*) FROM users WHERE user_login LIKE @login AND user_pass LIKE @pass вылетает ошибка "Необходимо объявить скалярную переменную "@log" " у строки SqlDataReader sqlRead = sqlCmd.ExecuteReader(); Подскажите пожалуйста, объявить скалярную переменную так- declare @log, если не так, то как? и как присвоить значения текстовых полей логина и пароля к этим переменным?
0
|
|
|
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
|
||
| 29.05.2013, 01:54 | ||
|
Второе место запятой пишем AND id предположытельно инт Итого: string sql = "select * from <Название таблицы> where id =" + log + "AND password LIKE '%"pass"%'";
0
|
||
|
179 / 48 / 6
Регистрация: 23.06.2011
Сообщений: 248
|
|
| 29.05.2013, 01:58 | |
|
Касательно аргументов запроса с @ - почитай тут, сейчас нет возможности расписать, а там достаточно сказано, подойдет с минимальными переделками.
Насчет запятой в запросе - у меня память очень плохая, и с запросами редко сталкиваюсь сейчас ) вместо запятой AND: select count(*) from DB where id = login AND password = pass
0
|
|
|
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
|
|
| 29.05.2013, 02:02 | |
|
% лишний наверное
0
|
|
|
13 / 13 / 1
Регистрация: 21.05.2013
Сообщений: 61
|
|||||||
| 29.05.2013, 13:54 | |||||||
|
Во первых, зачем LIKE. Должно быть так: WHERE user_login = @login AND user_pass = @pass Далее, ты передал параметры в коде? Перед тем как вызывать sqlCmd.ExecuteReader();? К примеру так:
1
|
|||||||
|
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 51
|
|
| 29.05.2013, 16:18 [ТС] | |
|
а как посмотреть какое значение выходит после запроса? какой метод или поле это хранит?
0
|
|
|
13 / 13 / 1
Регистрация: 21.05.2013
Сообщений: 61
|
||||||
| 29.05.2013, 17:05 | ||||||
|
Дак легко. Если есть хоть одна строка в ридере, значит вошел успешно и в строке можно считывать его имя, права и т.д. А если ридер ни чего не вернул - так значит он не нашел такую комбинацию.
Вот на примере того, что у меня есть, думаю сможешь разобраться:
0
|
||||||
|
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 51
|
|
| 29.05.2013, 17:57 [ТС] | |
|
я проверил, строка есть в ридере. Вот у меня и вопрос как считывать или сравнивать?
начинаю сравнивать if (Convert.ToInt32(sqlRead.ToString())!=1) Пишет: "Входная строка имела неверный формат." и "Убедитесь, что ваши аргументы метода имеют верный формат"
0
|
|
|
13 / 13 / 1
Регистрация: 21.05.2013
Сообщений: 61
|
||||||||||||
| 29.05.2013, 18:36 | ||||||||||||
|
Что надо? Просто проверить совпал логин и пароль или еще что? Я же привел пример... Вот твой запрос:
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 51
|
|
| 29.05.2013, 18:46 [ТС] | |
|
нужно проверить совпал ли логин и пароль...
и что значит выполнить вход в теле метода?
0
|
|
|
13 / 13 / 1
Регистрация: 21.05.2013
Сообщений: 61
|
||
| 29.05.2013, 18:58 | ||
Иначе бы он ни чего не выдал в селекте. В чем проблема то?
0
|
||
|
0 / 0 / 0
Регистрация: 26.03.2013
Сообщений: 51
|
|
| 29.05.2013, 19:17 [ТС] | |
|
то есть если reader.Read() выполняется, то это значит, что запрос вывел одну или несколько строк удоволетворяющих запросу, и в теле мне нужно вставить метод выводящий другую форму, которую мне надо?
Я просто сделал, как выше написал. Пишу неправильный пароль все равно входит в следующую форму...
0
|
|
| 29.05.2013, 19:17 | |
|
Помогаю со студенческими работами здесь
20
Вход через gmail и проверка адреса Документ на вход, проверка на выходе на наличие аргумента Регистрация пользователя в программе. Вход по логину и паролю. Проверка ввода Как поменять местами микрофонный вход и вход на наушники? программное перенаправление Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|