Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Programm
Заблокирован
#1

Продумать логику авторизации в бд

12.10.2014, 15:19. Просмотров 1227. Ответов 28
Метки нет (Все метки)

есть таблица созданная в Access (Login) в ней два поля (Логин и Пароль). Как реализовать проверку: водим логин в текстбокс1 и пароль в текстбокс2, нажимаем кнопку, если совпали данные, то все хорошо, иначе ошибка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2014, 15:19
Ответы с готовыми решениями:

Как лучше продумать интерфейс и логику БД для больницы (MS SQL)
Есть база Больница. Требуется чтобы в C# заполнялось в форме Лечение и...

Сбор данных с серверов. Продумать архитектуру
Прочел книгу по C#, про патерны. Теперь хочу написать проект, но возникли...

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

Задача на логику из реального приложения
Всем доброго времени суток! Задача из реальной программы по прочностному...

Пишу Lines на C#. Как построить логику игры
Доброго времени суток. Пишу игру линии... Уже отчаиваюсь от сложности... У...

28
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 15:51 #2
Programm, запоминаем в переменные login и password строки из текстбоксов и делаем параметризованный SQL запрос к БД, например
SQL
1
SELECT id FROM users WHERE login = @login AND password = @password
проверяем условием
C#
1
if (reader.Read()) //если true то авторизация успешна и наоборот
Добавлено через 6 минут
вообще конечно шифрование юзать для пароля

Добавлено через 3 минуты
реализация шифривания пароля MD5 на C#
0
Programm
Заблокирован
12.10.2014, 15:58  [ТС] #3
база данных MS Access 2007. Можешь написать полный код всего этого? в C# с бд работаю впервые.
запомнил в переменные строки из textbox. Как дальше их проверить на условия из бд?
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:05 #4
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
25
26
27
28
29
30
            OleDbConnection conn;
            string login = "login";
            string password = "password";
            try 
            {
                conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\mydatabase.mdb;User Id=admin;Password=;");
                conn.Open(); //Подключаемся к бд
                string command = "SELECT id FROM users WHERE login = @login AND password = @password";
                OleDbCommand  com = new OleDbCommand(command, conn);
                com.Parameters.AddWithValue("@login", login);
                com.Parameters.AddWithValue("@password", password);
                OleDbDataReader reader = new OleDbDataReader();
                reader = com.ExecuteReader();
                if (reader.Read()) { 
                    MessageBox.Show("Вы были успешно авторизованы");
                    //дальше пишем что нужно
                }
                else 
                {
                    MessageBox.Show("Неверный логин или пароль!"); 
                }
            }
            catch (Exception ex) 
            {
                MessageBox.Show(ex.Message); //Если ловим ошибку выводим её 
            }
            finally 
            {
                conn.Close(); //Закрываем подклюючение при любом раскладе
            }
код исправлен!
0
Programm
Заблокирован
12.10.2014, 16:08  [ТС] #5
для OleDbDataReader не определен конструктор
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:11 #6
Programm, пространство имен подключить надо
C#
1
using System.Data.OleDb;
а ещё для Access 2007 строка подключения такая по идее
C#
1
2
3
4
conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\mydatabase.mdb;User Id=admin;Password=;");
//mydatabase.mdb //имя файла БД
//User Id=admin тут вместо admin имя пользователя БД
//Password= если пароль нужен пишем сюда
0
Programm
Заблокирован
12.10.2014, 16:13  [ТС] #7
имена были подключены. А БД я подключал через "Добавление нового источника данных"
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:14 #8
Programm, сорри просто
C#
1
OleDbDataReader reader;
конечно же
0
Programm
Заблокирован
12.10.2014, 16:18  [ТС] #9
ExecuteReader: свойство connection не инициализировано
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:29 #10
Programm, если ты пользовался подключение через VS, то строку подключения можно достать так
C#
1
Properties.Settings.Default.MyDBConnectionString
Добавлено через 2 минуты
Цитата Сообщение от Programm Посмотреть сообщение
ExecuteReader: свойство connection не инициализировано
это вы уже походу сами там что то намутили

Добавлено через 2 минуты
у меня подключение проходит отлично
0
Programm
Заблокирован
12.10.2014, 16:30  [ТС] #11
это я уже исправил. И сделал подключение к бд через код. Но он пишет что этого файла нет и пишет путь. Я захожу туда и файл там лежит, но он не видит его почему то
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:31 #12
Programm, через VS запускаете в режиме отладки?
если да, то проверьте, что у вас в папке Debug проекта лежит файл БД
0
Programm
Заблокирован
12.10.2014, 16:33  [ТС] #13
файл там лежит, но он не видит его
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:34 #14
покажите что у вас написано в файле app.config
0
Programm
Заблокирован
12.10.2014, 16:37  [ТС] #15
где должен лежать этот файл? делаю поиск - его вообще нет
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:39 #16
Programm, вы же сказали, что подключение к БД создали с помощью VS, когда таким образом подключаешься, то в проекте должен появится файл БД, DataSet и файл app.config
0
Programm
Заблокирован
12.10.2014, 16:43  [ТС] #17
сделал все с нуля. Вот :
XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication1.Properties.Settings.labConnectionString"
            connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\lab.accdb"
            providerName="System.Data.OleDb" />
    </connectionStrings>
</configuration>
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:45 #18
XML
1
<add name="WindowsFormsApplication1.Properties.Settings.labConnectionString">
name измените на что нить нормальное, типа MyDB
и тогда вот так получите строку подключения
C#
1
Properties.Settings.Default.MyDB
0
Programm
Заблокирован
12.10.2014, 16:50  [ТС] #19
сразу две ошибки на эту строчку: в качестве оператора могут использоваться только выражения присваивания и т.д. и "WindowsFormsApplication1.Properties.Settings" не содержит определения для "MyBD" и не был найден метод расширения "MyBD"
0
meksik
202 / 171 / 67
Регистрация: 04.10.2014
Сообщений: 839
12.10.2014, 16:54 #20
Programm, мб все же MyDB, а не MyBD?
сбросьте свой кусок кода, где вы написали свой код с авторизацией (в тегах С#!!!!!!!!!)
и app.config (в тегах XML !!!!!!!!!!!)
0
12.10.2014, 16:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2014, 16:54

Правильно ли это : выносить логику по возможности в данные ?
Ваяю приложение в паттерне MVVM, с прицелом на дальнейшее частичное...

Пишу шашки на C#, как организовать логику игры
Я пишу шашки, но пока что я начинающий сишарпер и мне нужно сформировать...

Передача переменной в метод - объясните логику (код внутри)
Добрый день! using System; using System.Collections.Generic; using...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru