Проверка регистрации пользователя...

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Проверка регистрации пользователя...

Сообщение dmitriy22 » 07.08.2006 (Пн) 17:12

У меня возник вопрос, хотя я все вроде правильно делаю, но у меня не получается выполнить запрос :
Код: Выделить всё
Private Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim sqlQuery, sqlQuery2, sqlQuery3, comboText As String
        Dim comboItem, comboItemReal, sqlQueryID As Integer

SqlConnection1.Open()
        SqlSelectCommand1.Connection = SqlConnection1   

              sqlQuery3 = "select Password from tblLogin where firstName='comboItem'"
     SqlSelectCommand1.CommandText = sqlQuery3
        SqlSelectCommand1.ExecuteNonQuery()
        SqlConnection1.Close()

        If Me.txtPass.Text = sqlQuery3 Then
            MessageBox.Show("Пароль верен", "Подтверждение", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Else
            MessageBox.Show("Пароль не верен", "Подтверждение", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If

    End Sub

подскажите пожалуйста что не так???
Я не волшебник, я просто учусь.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 07.08.2006 (Пн) 17:48

"select Password from tblLogin where firstName='comboItem'"
заменить на
"select Password from tblLogin where firstName='" & "comboItem" & "'"

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 08.08.2006 (Вт) 8:59

Ramzes а запрос не выполняется....т.е. он видит
Код: Выделить всё
sqlQuery3 = "select Password from tblLogin where firstName='comboItem'"
как обычною строчку....т.е. не выполняется запрос....SqlSelectCommand1.ExecuteNonQuery()
как заставить именно запрос sqlQuery3 выполниться ???
т.к я задаю адаптер и там selectcommand другой....
какой принцип выполнения отдельно взятого запроса, вот как в моем случае, т.е я задаю строковую переменную...с запросом....но как вытащить его, т.е. какой адаптер нужен??? я запутался... :roll:
Я не волшебник, я просто учусь.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 08.08.2006 (Вт) 9:34

блин, проглядел :oops:
Тебе нужен DataReader
Код: Выделить всё
Private Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click
        Dim sqlQuery, sqlQuery2, sqlQuery3, comboText As String
        Dim comboItem, comboItemReal, sqlQueryID As Integer
Dim Dreader as SQLClient.SQLDataReader
Dim Psw as string

SqlConnection1.Open()
        SqlSelectCommand1.Connection = SqlConnection1   

              sqlQuery3 = "select Password from tblLogin where firstName='" & comboItem & "'"
     SqlSelectCommand1.CommandText = sqlQuery3
Dreader=SqlSelectCommand1.ExecuteReader()
while Dreader.read()
psw=dreader.item(0)
End While
        SqlConnection1.Close()

        If Me.txtPass.Text = sqlQuery3 Then
            MessageBox.Show("Пароль верен", "Подтверждение", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Else
            MessageBox.Show("Пароль не верен", "Подтверждение", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If

    End Sub


Только таким образом, если строк много будет выгребет только последнюю... ну дальше тебе на обдумывание
Последний раз редактировалось Ramzes 08.08.2006 (Вт) 13:49, всего редактировалось 1 раз.

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 08.08.2006 (Вт) 12:50

спасибо за подсказку с datareader и в правду выгодней....
правда не фига не выходит....т.е. в конце когда я сравниваю Me.txtPass.Text = sqlQuery3 то sqlQuery она так и остается как select Password from tblLogin where firstName='comboItem'
а я так понимаю, что он должен возвращать значение из таблицы...или нет...??? т.е. код пока не работает...
Я не волшебник, я просто учусь.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 08.08.2006 (Вт) 13:12

это потому, что у тебя результат записывается не в SQLQuery3 а в psw, внимателнее читать надо молодой человек :roll:

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 08.08.2006 (Вт) 13:19

Ramzes
вот какое значение возвращает Psw :
Код: Выделить всё
Psw              Nothing          String
Я не волшебник, я просто учусь.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 08.08.2006 (Вт) 13:50

код исправил.

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 08.08.2006 (Вт) 14:03

Ramzes
огромная благодарность...[img]http://yarchat.chatzme.com/img/pizdato[1].gif[/img] все оказывается работало....но я нашел ошибку.....она была в запросе...т.к. в запросе
Код: Выделить всё
..."select Password from tblLogin where firstName='" & comboItem & "'"

comboItem возвращает число......а вот так работает:
Код: Выделить всё
"select Password from tblLogin where firstName='" & Me.comboLogin.Text & "'"

еще раз спасибо за содействие.....как говорится, если долго мучаться... :wink:
Я не волшебник, я просто учусь.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.08.2006 (Ср) 22:01

dmitriy22

Таких как Ramzes убивать надо в детстве за такие советы.
Подход изначально неправильный. Дырявый.
Например, проверка пароля

';DROP DATABASE;///
(чуть могу напутать с синтаксисом)

таким способом на некоторых серверах похоронит всю базу))))))


Используй параметры...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 17.08.2006 (Чт) 15:01

Sebas но этот же синтаксис удаляет текущую базу данных ??? при чем здесь проверка пароля? :wink:
Я не волшебник, я просто учусь.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.08.2006 (Чт) 15:51

dmitriy22, Sebas введёт эту строку в качестве своего пароля, и тем самым похоронит всю базу.
Изображение

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 18.08.2006 (Пт) 8:54

tyomitch а как же обезопаситься от такого? :cry:
Я не волшебник, я просто учусь.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.08.2006 (Пт) 9:14

Sebas писал(а):Используй параметры...
Изображение

dmitriy22
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 121
Зарегистрирован: 27.04.2006 (Чт) 12:04
Откуда: Москва

Сообщение dmitriy22 » 18.08.2006 (Пт) 18:11

tyomitch

параметры к database ?
Я не волшебник, я просто учусь.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList