я написал следующую функцию для проверки журнала в данных для пользователя, но до сих пор его не работает должным образом, и я уверен, что есть что-то не так с ним:Проверьте регистрационные данные от имени пользователя и пароля столбцов
Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles button2.Click
If loginpasswordtx.Text.Length > 1 And loginpasswordtx.Text.Length > 1 And My.Settings.SQLConnectionString.Length > 5 Then
Try
Dim cnn As New SqlConnection(My.Settings.SQLConnectionString)
Dim cmd = New SqlCommand("SELECT AppUser,AppUserPass FROM OrderAppUsers WHERE [email protected] AND [email protected]", cnn)
cmd.Parameters.Add(New SqlParameter("@AppUser", createuserAppUser.Text))
cmd.Parameters.Add(New SqlParameter("@AppUserPass", MD5StringHash(loginpasswordtx.Text)))
cnn.Open()
Dim obj As Object = cmd.ExecuteScalar()
If obj = Nothing Then
MsgBox("Faild to Log in, check your log in info")
cnn.Close()
Return
End If
cnn.Close()
Catch ex As SqlException
MsgBox(ex.Message)
Return
End Try
MsgBox("Logged in Successfully")
End If
End Sub
Все, что я получаю, это null obj
, хотя пользователь и пароль существуют в таблице.
следующий код для добавления новых пользователей
Try
Dim cnnstring As String = String.Format("Server={0};Database={1};Trusted_Connection=True;", createuserServerTx.Text, createuserDatabaseTx.Text)
Dim cnn As New SqlConnection(cnnstring)
Dim cmd As New SqlCommand("INSERT INTO OrderAppUsers VALUES (@AppUser, @AppUserPass)", cnn)
cmd.Parameters.Add(New SqlParameter("@AppUser", createuserAppUser.Text))
cmd.Parameters.Add(New SqlParameter("@AppUserPass", MD5StringHash(createuserpassword.Text)))
cnn.Open()
cmd.ExecuteNonQuery()
cnn.Close()
MsgBox("User Crated Successfully")
LayoutControl1.Visibility = Windows.Visibility.Collapsed
My.Settings.SQLConnectionString = cnnstring
My.Settings.Save()
Catch ex As SqlException
MsgBox(ex.Message)
End Try
и функции для создания обычай окрошка
Private Function MD5StringHash(ByVal strString As String) As String
Dim MD5 As New MD5CryptoServiceProvider
Dim Data As Byte()
Dim Result As Byte()
Dim R As String = ""
Dim Temp As String = ""
Data = Encoding.ASCII.GetBytes(strString)
Result = MD5.ComputeHash(Data)
For i As Integer = 0 To Result.Length - 1
Temp = Hex(3 * Result(i) + 1)
If Len(Temp) = 1 Then Temp = "0" & Temp
R += Temp
Next
Return R
End Function
все еще та же проблема, и я не могу понять, что не так, забавная вещь, это работает только тогда, когда я создаю ne w и попробуйте войти в систему, после того, как я закрою приложение и попробую снова войти в систему с тем же пользователем, он говорит: «Faild для входа в систему, проверьте свою информацию в журнале», я добавил код, как добавить пользователя в databae в вопросе – user1570048
@ user1570048 вы проверили базу данных, если вставка прошла успешно? –
yes all perfect – user1570048