![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Есть БД с таблицей users. На форме: txtLogin, txtPassword, btnLogin, btnRegistration (при нажатии на btnRegistration появляются: txtFName, txtLName, txtPhone, btnSend)
Самому первому зарегистрировавшемуся пользователю присвоить все права (RAdmin = true) остальным присваивать (RAdmin = false) Потом первый пользователь сможет принимать решения кому назначать еще права администратора. Пользователям нельзя редактировать и недоступны некоторые функции программы (назначение прав...) С вашей помощью хочеться реализовать такое. |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
А в чём, собственно, проблема?
|
|||
|
||||
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Exception, хочеться реализовать так, чтобы было универсально и граммотно.
Чтобы присвоить права только первому пользователю как лучше поступить? Сделать проверку на значение в БД и если такое есть то присваивать только RAdmin = false? |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
Просто проверяй количество записей в таблице. Если их нет -- устанавливай у новой записи флаг в true, если есть хоть одна -- в false.
А вообще, о том, как грамотно реализовать авторизацию, смотри тут: http://www.codeguru.com/csharp/.net/net_se...icle.php/c7415/ Добавлено через 7 минут и 58 секунд http://www.codeguru.com/dbfiles/get_file/R...amp;ds=20040618 -- готовая программа-пример. |
|||
|
||||
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Вот что пока получается:
Ошибка: Must declare the scalar variable "@ID" Добавлено через 2 минуты и 11 секунд Пока писал сообщение даж не заметил, Exception, спасибо за примеры буду разбираться с ними тоже) |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
Наверное, ты имел в виду "WHERE ID = @Original_ID"
![]() |
|||
|
||||
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Exception, если честно то не могу понять где ошибка все-равно
![]() ID (is identity = true, и Primery key)
Сделал проверку, заполнил датасет и вывел его в датагрид все ок! Но вот обновить БД не получается((( Код взят из книги Майк Гандерлой, Джозеф Джорден, ... SQL Server 2005 Если можно, объясните плиз как лучше через код использовать эти все команды и чутка комментарий к строчкам)... а то авторы книги, на комментарии к коду, времени не тратили (( Добавлено через 3 минуты и 36 секунд Еще куда фак пропал? там была хорошая статья про SQL запросы, мне бы она сейчас очень пригодилась ![]() |
|||
|
||||
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Обновилась после добавления всего этого... Проще можно решение? |
|||
|
||||
tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
тебе же Exception, написал, у тебя синтаксическая ошибка в строке запроса
вместо
нужно
-------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
tol05, я уже так пробовал, не помогает... таже ошибка ((
Ошибка: Must declare the scalar variable "@ID" |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
У тебя, видимо, не одна ошибка. Верни @ на место ![]() В какой строчке? P. S. А ты какую СУБД используешь? |
|||
|
||||
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
||||
|
||||
Idsa |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Так ты же добавляешь параметры, а значения им не присваиваешь. Кроме того, int весит 4 байта, а не 1. Да и вообще, размер для int указывать не нужно. Для добавления параметров тебе следует использовать, например, следующий код:
В случае использования int можно забить на size (для varchar так лучше не делать), да и тип автоматически определится, поэтому можно использовать короткую запись:
|
||||
|
|||||
Redstuff |
|
|||
![]() Команда REDSTUFF ![]() ![]() Профиль Группа: Участник Сообщений: 497 Регистрация: 27.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Все теперь понятно почему ошибка. Намудрил кучу всего лишнего, датасет зачем-то привизал.
Idsa, спасибо! буду знать на счет типа.
С этим разобрался! Теперь необходимо проверить есть ли такой пользователь в БД и какие у него права. Если все ок, то открыть следующую форму с наличием на ней того функционала который полагается пользователю с его правами. Как осуществить проверку? Есть только одна мысль - сравнить txtLogin со столбцом Login, если нашел запомнить номер ID/строки и сверить пароль находящийся там с txtPassword. |
|||
|
||||
Idsa |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Зачем искать ID? Нужно составить запрос, например, такой:
Параметрам login и password присвоить значения txtLogin и txtPassword соответственно. После выполнения ExecuteReader() проверить: если reader.HasRows == false, выдать MessageBox с сообщением "Неверный логин или пароль", иначе выполнить reader.Read() и проверить reader["RAdmin"]. Ну а дальше уже реализуй логику своего приложения. |
||||
|
|||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |