получил несколько вопросов здесь.Как вы все знаете, я создал класс, в котором я просто создаю его экземпляр на моей странице .aspx. На моей странице .aspx у меня есть logincontrol с именем login1.Теперь я получаю ошибку, когда user.UserName = Nothing и останавливаемся на этом user.UserName = Nothing
, говоря Object reference not set to an instance of an object.
. Не могли бы вы помочь мне отладить проблему.Все, что я хочу, это то, что если имя пользователя отсутствует в базе данных, lblmessage должно сказать Ошибка Имя пользователя недействительно , и если это правильно, то он проверит пароль.Пожалуйста, помогите.Спасибо и еще больше сил, ребята.
Страница Aspx
Protected Sub LoginButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim user As New User
Dim userDAL As New UserDAL
user = userDAL.SelectByUsername(Login1.UserName)
If user.UserName = Nothing Then
Login1.FailureText = "Invalid Username"
Else
If Login1.Password <> user.Password Then
Login1.FailureText = "Invalid password"
Else
Login1.FailureText = "success"
End If
End If
End Sub
UserDAL.vb
Public Function SelectByUsername(ByVal userName As String) As User
Try
'select * from User where Username = 'userName'
Dim sqlConn As New SqlConnection(_connString)
sqlConn.Open()
Dim sqlCmd As New SqlCommand("select * from [Users] where Username = '" & userName & "'", sqlConn)
Dim dr As SqlDataReader = sqlCmd.ExecuteReader()
'Create user collection
Dim user As User = Nothing
While dr.Read()
'Create User object
user = New User
user.UserName = dr("UserName").ToString
user.Password = dr("Password").ToString
user.FirstName = dr("FirstName").ToString
user.Surname = dr("Surname").ToString
End While
dr.Close()
Return user
Finally
If _sqlConn IsNot Nothing Then
If _sqlConn.State = Data.ConnectionState.Open Then
_sqlConn.Close()
End If
End If
End Try
Return Nothing
End Function