Avatar billede barcavs Nybegynder
23. oktober 2007 - 09:58 Der er 7 kommentarer og
1 løsning

exists username in vb.net

Hej

Hvordan tjekker jeg om brugernavn allerede existere i db ??

Har arbejdet på det i 2 dage nu... prøvet en hel masse som f.eks.

Dim dt As DataTable = objCheck.GetCheck(txtUsername.Text)
If dt.Rows(0).Item("fldUsername") = txtUsername.Text Then
lblMsg.Text = "Brugernavn findes allerede, vælg en anden brugernavn!"

Else

Gør det

End If

Den her finder bruger og skriver at bruger findes i db, men når jeg skal oprette en anden brugernavn giver den fejl ??SOm

System.IndexOutOfRangeException: There is no row at position 0
Avatar billede nielle Nybegynder
23. oktober 2007 - 21:54 #1
Jeg må tilstå at jeg ikke helt forstår den måde du ønsker at gøre det på. Hvorfor skal der blandes en datatable ind i det?

På den helt simple form:

Smid

en TextBox (til indtastning af brugernavnet),
en Button (til submit)
og en Label ind (til at vise resultatet af søgningen)

ind på din side:

    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="Button" />
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </div>
    </form>

Sæt derefter noget lignende den følgende kode på knappen:

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Forbindelse til databasen
        Dim connStr As String = "hvad du nu skal bruge til netop din database"
        Dim conn As SqlConnection = New SqlConnection(connStr)

        ' SQl kommandoen ....
        Dim sql As String = "SELECT count(*) FROM dinUserTable WHERE username = @username"
        Dim cmd As SqlCommand = New SqlCommand(sql, conn)

        ' ... med parameters
        cmd.Parameters.Add("@username", SqlDbType.VarChar, 50)  ' Hvis du da har afsat 50 tegn i basen
        cmd.Parameters("@username").Value = Me.TextBox1.Text

        ' Udfør SQL kaldet
        conn.Open()
        Dim antal As Integer = CType(cmd.ExecuteScalar(), Integer)
        conn.Close()

        ' Vis resultatet
        If antal >= 1 Then
            Me.Label1.Text = "Desværre er brugernavnet allerede taget"
        Else
            Me.Label1.Text = "Brugernavnet er frit"
        End If
    End Sub

Denne version af kode antager at du bruger en SQL Server. Den kan dog uden vidre rettes til at du f.eks. bruger Access eller en ODBC forbindelse.
Avatar billede barcavs Nybegynder
23. oktober 2007 - 22:55 #2
Jeg bruger Access database... Så jeg er ikke helt med hvordan jeg skal lave det ...derfor spørger jeg :D
Avatar billede nielle Nybegynder
23. oktober 2007 - 22:58 #3
Så skal du bare skrive "OleDb..." i starten af alle funktionerne i stedet for "Sql..."
Avatar billede barcavs Nybegynder
23. oktober 2007 - 23:18 #4
kan du ikke lige vise hvordan jeg skal skrive det??

Som dette for jeg fejl:

  'her skal jeg tjekke om username eller email allerede findes i db
        Dim objDS As New DataSet
        Dim sql As String = "SELECT count(*) FROM dinUserTable WHERE username = @username"


        Dim connStr As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\App_Data\dbAcfc.mdb")
        Dim conn As New OleDbDataAdapter(sql, connStr)
     

        ' SQl kommandoen ....
        Dim cmd As OleDbCommand = New OleDbCommand(sql, connStr)


        ' ... med parameters
        cmd.Parameters.Add("@username", OleDbType.VarChar, 50)  ' Hvis du da har afsat 50 tegn i basen
        cmd.Parameters("@username").Value = Me.txtUsername.Text

        ' Udfør SQL kaldet

        Dim antal As Integer = CType(cmd.ExecuteScalar(), Integer)


        ' Vis resultatet
        If antal >= 1 Then
            Me.lblMsg.Text = "Desværre er brugernavnet allerede taget"
        Else

lbl.text = "ok"
End If
Avatar billede barcavs Nybegynder
23. oktober 2007 - 23:25 #5
Ok Takker det var bare stien til db der var forkert...Super mange tak nielle... svar lige :D
Avatar billede nielle Nybegynder
24. oktober 2007 - 06:49 #6
Svar :^)
Avatar billede nielle Nybegynder
06. november 2007 - 17:27 #7
Så mangler du bare at acceptere mit svar :^)
Avatar billede nielle Nybegynder
07. november 2007 - 18:24 #8
Takker for point :^)
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