Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44

Вывод логина после авторизации

20.02.2018, 14:13. Показов 6851. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста. Есть бд на ms sql server 2014 и visual studio 2013,я сделал форму авторизации,а теперь хотел уточнить через какой компонент или код мне на форме выводить имя учетной записи. Чтобы видеть под какой я учеткой зашел. Имя учетной записи хранится в бд ms sql server 2014
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2018, 14:13
Ответы с готовыми решениями:

Вывод ФИО после авторизации
Добрый день! Прошу помощи) застряла на этом этапе. Запускаю приложение, после окна авторизации с правами открывается нужная форма, для...

Проверка логина и пароля при авторизации в БД
Делаю форму авторизации и хочу что бы при вводе логина и пароля программа проверяла правильность введенных данных но проблема в том что...

Форма авторизации (проверка на ошибку ввода логина или пароля)
можно ли из таким способом сделать проверку на ошибку ввода логина или пароля или для этого надо загрузить таблицу в dataset?? string...

40
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
20.02.2018, 14:40
Label не предлагать?
0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
20.02.2018, 14:49  [ТС]
А помимо label ? К примеру какие нить компонеты usermanagetable или похожие. И если на labelто как? Присваивать значение из бд?
Ps-сильно не пинайте,я недавно в этой сфере.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
20.02.2018, 15:13
Цитата Сообщение от vladislav42 Посмотреть сообщение
И если на labelто как? Присваивать значение из бд?
ну ведь как-то ты понимаешь, что аутентификация прошла. Вот и верни нужное поле для юзера.
1
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
20.02.2018, 15:17  [ТС]
Ну понимаю что аутентификация прошла я понимаю то что после ввода значений из текстбокс1 и текстбокс2 ушли значения сравнились в бд и если все верно открылась форма2. Ладно попробую завтра сейчас доступа к по нет.
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
20.02.2018, 16:26
vladislav42, ну как-то нелогично мыслите.
Для авторизации пользователь УЖЕ ввел имя пользователя.
Варианта 2 - запоминать имя пользователя, что ввел пользователь, либо же (ну как вариант) в таблице хранится кроме login еще и fullName пользователя- тогда возвращать это поле - и показывать.... ну это уже только фантазией ограничивается.
0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
21.02.2018, 06:14  [ТС]
У меня вот 2 формы. Одна форм1 авторизация а вторая форм2 сама база.
на форме 1 в кнопке войти
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=10.52.100.51\SQLEXPRESS;Initial Catalog=MatrDostup;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");
            SqlDataAdapter sda = new SqlDataAdapter("Select Count (*) From Dostup where Login = '" + textBox1.Text + "' and Pass = '" + textBox2.Text + "'", con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            if (dt.Rows[0][0].ToString() == "1")
            {
                this.Hide();
                Form2 f = new Form2();
                Form2 label1.Text ;
                f.Show();
            }
            else
            {
                MessageBox.Show("Неправильно введен логин или пароль", "Ошибка входа", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
Form2 label1.Text ; как вот здесь указать имя базы ms server 2014, а также поля name из таблицы бд,чтобы это выводилось на форме2 в label1?
И кода в кнопке войти на форме 1 хватит? или надо еще писать код для форм2?
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
21.02.2018, 09:03
vladislav42, строку коннекта запихиваете в общедоступное место (например в app settings) - и можете её доставать в любом месте Вашей программы. Тогда этот код нужно будет немного допилить, прописывая путь не в ручную, а с файла.
И еще - никогда!!! не сравнивайте число в строковом эквиваленте. Это гавнокодище ужасное. У объекта DataRow есть прекрасный метод Field<T>("[Field name]") - используйте его.
0
21.02.2018, 09:05

Не по теме:

А ещё не понятно на кой ляд тут используется SqlDataAdapter.

0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
21.02.2018, 11:09  [ТС]
А не могли бы привести пример? на основе моих набросков?
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
21.02.2018, 11:20
vladislav42, вам нужно использовать класс SqlCommand и его метод ExecuteScalar.
0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
21.02.2018, 11:32  [ТС]
Целый день сижу читаю литературу,а где и как правильно исправить еще не понял. "Ткните" меня носом в нужную область,пример.
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
21.02.2018, 12:01
vladislav42,

C#
1
2
3
4
5
6
7
8
9
10
11
12
using(var con = new SqlConnection("строка подключения"))
{
    con.Open();
    using(var cmd = new SqlCommand("SELECT COUNT(1) FROM Dostup where Login=@login AND Pass=@pass", con))
    {
        cmd.Parameters.AddWithValue("login", "ЛОГИН");
        cmd.Parameters.AddWithValue("pass", "ПАРОЛЬ");
 
        var accountsCount = (int)cmd.ExecuteScalar();
        Console.Write("Is authenticated: {0}", accountsCount != 0);
    }
}
0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
21.02.2018, 12:20  [ТС]
Usaga, это код для visual studio windows form? а то больно похож на обычный код для консольной версии или я ошибаюсь?

вот мой код,давайте пока не будем пока обращать внимание на "быдлокод".
Этот код работает, со временем я его поменяю, а пока мне пожалуйста подскажите функцию или куда писать код sql select name from dostup. чтобы в label1 за место "какой то текст" был name

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
     private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=10.52.100.51\SQLEXPRESS;Initial Catalog=MatrDostup;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");
            SqlDataAdapter sda = new SqlDataAdapter("Select Count (*) From Dostup where Login = '" + textBox1.Text + "' and Pass = '" + textBox2.Text + "'",con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            if (dt.Rows[0][0].ToString() == "1")
            {
                this.Hide();
                Form2 f = new Form2();
                f.label1.Text = "Select Name From Dostup"; ;
                f.Show();
            }
            else
            {
                MessageBox.Show("Неправильно введен логин или пароль", "Ошибка входа", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
21.02.2018, 12:22
Цитата Сообщение от vladislav42 Посмотреть сообщение
это код для visual studio windows form?
Это код для C#. Где вы его будете использовать (WinForms, WPF, Console, ASP.NET) - роли не играет от слова совсем.

Console.Write - чисто для демонстрации.

Добавлено через 46 секунд
Цитата Сообщение от vladislav42 Посмотреть сообщение
Этот код работает, со временем я его поменяю
Этот код - говно, меняйте его уже сейчас. Нормальный вариант я вам дал.
0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
21.02.2018, 12:24  [ТС]
а где тогда прописывать
C#
1
@"Data Source=10.52.100.51\SQLEXPRESS;Initial Catalog=MatrDostup;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False"
?
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
21.02.2018, 12:26
Неужели это так незаметно:

C#
1
using(var con = new SqlConnection("строка подключения"))
?

Вынесите строку подключения в конфигурационный файл. Читайте строку при запуске приложения, потом передавайте в SqlConnection.
0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
22.02.2018, 05:47  [ТС]
Пытаюсь разобраться в коде и пока это не очень получается.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        {
            SqlConnection con = new SqlConnection(@"Data Source=10.52.100.51\SQLEXPRESS;Initial Catalog=MatrDostup;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False");
            con.Open();
            SqlDataAdapter cmd = new SqlDataAdapter("Select Count (*) From Dostup where Login = '" + textBox1.Text + "' and Pass = '" + textBox2.Text + "'", con);
            DataTable dt = new DataTable();
            cmd.Fill(dt);
            if (dt.Rows[0][0].ToString() == "1")
            {
                this.Hide();
                Form2 f = new Form2();
                f.label1.Text = (int)cmd.SelectCommand.ExecuteScalar("Select Name from Dostup");
                f.Show();
            }
            else
            {
                MessageBox.Show("Неправильно введен логин или пароль:{0}", "Ошибка входа", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            //{
                //cmd.Parameters.AddWithValue("login", "ЛОГИН");
                //cmd.Parameters.AddWithValue("pass", "ПАРОЛЬ");
 
                
                //Console.Write("Is authenticated: {0}", accountsCount != 0);
            //}
выдает ошибку Ошибка 1 Ни одна из перегрузок метода "ExecuteScalar" не принимает "1" аргументов c:\mybase\login\login\login\form1.cs 38 38 Login

Пробовал код Usaga
C#
1
2
3
4
5
6
7
8
9
10
11
12
using(var con = new SqlConnection("строка подключения"))
{
    con.Open();
    using(var cmd = new SqlCommand("SELECT COUNT(1) FROM Dostup where Login=@login AND Pass=@pass", con))
    {
        cmd.Parameters.AddWithValue("login", "ЛОГИН");
        cmd.Parameters.AddWithValue("pass", "ПАРОЛЬ");
 
        var accountsCount = (int)cmd.ExecuteScalar();
        Console.Write("Is authenticated: {0}", accountsCount != 0);
    }
}
Он компилируется но вход и открытие форм2 не происходит(((
Как мне написать правильно?
0
Эксперт .NET
 Аватар для Usaga
14136 / 9356 / 1350
Регистрация: 21.01.2016
Сообщений: 35,169
22.02.2018, 06:21
Цитата Сообщение от vladislav42 Посмотреть сообщение
Он компилируется но вход и открытие форм2 не происходит(((
Какой "вход"? Какое "открытие формы"? Код, что я предоставил, определяет наличие записи с указынными логином и паролем (строка №10). Нам отсюда не видно, как вы этот фрагмент кода используете.

Или вы его в таком виде и воткнули в своё приложение?
0
0 / 0 / 0
Регистрация: 16.02.2018
Сообщений: 44
22.02.2018, 06:23  [ТС]
я попробовал так впихнуть,потом пробовал отредактировать под свои формы 1 и 2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2018, 06:23
Помогаю со студенческими работами здесь

WebRequest работа после авторизации
Здравствуйте. Есть задача, авторизоваться на сайте поставщика и скачать с него новый прайс-лист. Бьюсь 3й день, не получается...

Передача данных после окна авторизации
Есть окно авторизации,которое после входа открывает вторую форму.На второй форме хочу вывести типа &quot;Добро пожаловать ФИО&quot; (ФИО -...

Http запрос к Web-сервису после успешной авторизации
Привет всем! Нуждаюсь в помощи при создании правильного запроса. У меня клиент-приложение посылает запрос на Web-сервис, в результате в...

Вывод логина вместо ссылки авторизации
Добрый день. Такая мысль: вывести в панели навигации, вместо ссылки на авторизацию, логин пользователя, если он уже авторизовался. Как это...

Лишний вывод после проверки логина
Ребят, такая проблема: делаю проверку логина, когда ввожу неверный, должно выводиться сообщение о неверном логине, но на 3ю попытку...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru