Avatar billede simon_jacobsen Nybegynder
06. oktober 2005 - 09:37 Der er 8 kommentarer og
1 løsning

tjek brugernavn og password i access db

Jeg er ved at lave et program med login, loginbrugernavn og password findes i min access database, men får fejl når jeg henter data fra databasen, er helt ny til .net og med hensyn til access db så alt kritik af min kode er velkommen :)
Ville gerne lave en Access DB kommunikations klasse men droppede tanken igen da jeg ikke er så god til .net endnu ...



Imports System.Data.OleDb
Imports System

    Public DbCon As OleDbConnection
    Public Brugernavn As String
    Public Godkendt As Integer


    Public Sub Db_AAbn()
        Dim DbPath = System.IO.Directory.GetCurrentDirectory & "\DB.mdb"
        Try
            DbCon = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & DbPath & "';jet oledb:database Password=password")
            DbCon.Open()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "")
            End
        End Try
    End Sub


    Private Sub CmdLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdLogin.Click
        Db_AAbn()
        Dim DbQuery As OleDbCommand
        Dim DbReader As OleDbDataReader
        DbQuery = New OleDbCommand("SELECT * FROM User where" & TxtName.Text, DbCon)
        DbReader = DbQuery.ExecuteReader()
        While DbReader.Read
            Dim Id As Integer = CType(DbReader(0), Integer)
            Dim Navn As String = CType(DbReader(1), String)
            Dim Pass As String = CType(DbReader(2), String)
            Dim Godkend As Integer = CType(DbReader(3), Integer)
            If Navn = TxtName.Text And Pass = TxtPassword.Text Then
                Brugernavn = Navn
                Godkendt = Godkend
            End If
        End While
        DbCon.Close()
        If Brugernavn = vbNull Then
            MsgBox("forkert brugernavn eller password", MsgBoxStyle.Critical)
        End If
    End Sub
Avatar billede arne_v Ekspert
06. oktober 2005 - 10:21 #1
vbNull er vel en VB6'isme

hvis brugernavne er unikke må du kunne nøjes med en if og ikke en while
(det vil også gøre ikke match pænere)

hvis sikkerhed skal være høj så skal du vel beskytte dig mod ' i det angivne
brugernavn
Avatar billede simon_jacobsen Nybegynder
06. oktober 2005 - 12:50 #2
ok vbnull værdien er rettet :), men glemte lige at skrive at programmet fejler ved koden :
DbReader = DbQuery.ExecuteReader()
er der nogen der lige umiddelbart kan se hvad der er i vejen ?
Avatar billede nielle Nybegynder
06. oktober 2005 - 13:13 #3
Din SQL-sætning skal rettes fra:

"SELECT * FROM User where" & TxtName.Text

- til noget i stil med:

"SELECT * FROM User WHERE ditFelt='" & TxtName.Text & "'"
Avatar billede arne_v Ekspert
06. oktober 2005 - 13:13 #4
hvilken fejl ?
Avatar billede simon_jacobsen Nybegynder
06. oktober 2005 - 21:09 #5
fejlen hedder
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
og har lige prøvet at ændre koden for query til :
DbQuery = New OleDbCommand("SELECT * FROM User WHERE Brugernavn='" & TxtName.Text & "'", DbCon)
men for stadigt samme fejl ...
Avatar billede arne_v Ekspert
06. oktober 2005 - 21:13 #6
prøv:

DbQuery = New OleDbCommand("SELECT * FROM [User] WHERE Brugernavn='" & TxtName.Text & "'", DbCon)

måske er User et reserveret ord
Avatar billede nielle Nybegynder
18. oktober 2005 - 22:33 #7
Har du fået kigget på det?
Avatar billede simon_jacobsen Nybegynder
19. oktober 2005 - 10:33 #8
jep det virker tak arne :)
Avatar billede arne_v Ekspert
19. oktober 2005 - 14:28 #9
jeg ligger et svar så

(nielle har også bidraget - med ' erne)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Erfarne IT-udviklere til fremtidens skattevæsen

De Nationale Geologiske Undersøgelser for Danmark og Grønland (GEUS)

IT-systemadministrator søges til GEUS