Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 18:36 Der er 10 kommentarer og
1 løsning

Se om bruger allerede existere!

Hej Eksperter!

Jeg sidder her og makker med et problem, men kan simpelthent ikke komme videre...

Jeg er ved at lave en formular hvor en ny bruger kan indmelde sig, men hvis brugernavnet allerede existere i databasen skal brugeren ikke oprettes! Hvordan gør man det?

Hvis brugeren findes skal en true-værdi retuneres og hvis ikk en false-værdi.

Jeg har prøvet med følgende sqlsætning, men det ser ikke ud til at virke....:

    Function CheckSql(ByVal bRUGER As String) As System.Data.SqlClient.SqlDataReader
        Dim connectionString As String = "server='localhost'; user id='SA'; password=''; Database='Test'"
        Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)

        Dim queryString As String = "SELECT COUNT(DISTINCT Bruger) FROM Users (where Bruger= @Bruger)"
        Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)

        sqlCommand.Parameters.Add("@Bruger", System.Data.SqlDbType.VarChar).Value = bRUGER

        sqlConnection.Open()
        Dim dataReader As System.Data.SqlClient.SqlDataReader = sqlCommand.ExecuteReader(CommandBehavior.SingleResult)

        Return dataReader

    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If CheckSql(TextBox3.Text) = 0 Then
            InsSql(TextBox3.Text, TextBox4.Text)
            BindList()
            BindGrid()
        Else
            Response.Write("FEJL!!!!!!!!!!!!!")
        End If

    End Sub
Avatar billede odegaard Nybegynder
16. oktober 2002 - 18:48 #1
Du specificerer i databasen at brugernavnet skal være unikt. Du vil få en fejl hvis du forsøger at indsætte et brugernavn der allerede eksisterer. Du tjekker derfor blot om der sker denne fejl.
Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 18:56 #2
Hvordan kan jeg så tjekke om brugernavnet er blevet oprettet eller ej?
Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 18:59 #3
Hvordan akn jeg tjekke eller "behandle" denne fejl? Så response.write skriver "Brugernavnet existere allerede!"
Avatar billede odegaard Nybegynder
16. oktober 2002 - 19:13 #4
Prøv at indsætte en værdi i en tabel som allerede eksisterer (og som skal være unik!). Så se hvad der sker. Hvis jeg ikke tager meget fejl kommer der en exception.
Denne exception kan du fange med try/catch.
Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 19:18 #5
prøver lige....
Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 19:19 #6
Og hvordan gør jeg en kolonne unik?...kan ikke i design table...
Avatar billede odegaard Nybegynder
16. oktober 2002 - 19:23 #7
jo du kan skam. Jeg mener i SQL server det hedder ident (jeg har ikke lige adgang til at tjekke efter herfra).
Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 19:39 #8
Server Error in '/WebApplication12' Application.
--------------------------------------------------------------------------------

Violation of PRIMARY KEY constraint 'PK_Users'. Cannot insert duplicate key in object 'Users'. The statement has been terminated.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'PK_Users'. Cannot insert duplicate key in object 'Users'. The statement has been terminated.

Source Error:


Line 88:        sqlConnection.Open()
Line 89:        Try
Line 90:            rowsAffected = sqlCommand.ExecuteNonQuery
Line 91:        Finally
Line 92:            sqlConnection.Close()
Avatar billede odegaard Nybegynder
16. oktober 2002 - 20:05 #9
Noget i stil med:

sqlConnection.Open()
Try
  rowsAffected = sqlCommand.ExecuteNonQuery
Catch ex As System.Data.SqlClient.SqlException
  'Bruger allerede oprettet eller anden SQL fejl
Catch ex As System.Exception
  'En anden fejl opstod
  Response.Write("An error occured: " & ex.Message)
Finally
  sqlConnection.Close()
End Try
Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 20:16 #10
Takker
Avatar billede cablenet.dk Nybegynder
16. oktober 2002 - 20:16 #11
! Det virker!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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