23. oktober 2007 - 09:58Der 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
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.
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
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.