onsdag 13 januari 2010

Registrering av användare (1)

Hur enkel kan man göra registrering av en användare? Eftersom man ska logga in sig med ett username så är denna uppgift ett minimum. Username måste lagras i en databas så registreringen kan kollas vid en inloggning.

Vid registreringen måste jag först kolla om användarnamnet redan finns i databasen och i så fall meddela användaren det. I annat fall kan jag lagra användarnamnet.

Så jag börjar då med det. Först skapar jag en MasterPage med två ContentPlaceholders - en i huvudet och en i bodyn.

Jag kommer genomgående använda språket Visual Basic och placera koden i en separat fil åtskild från designen som skapas automatiskt med HTLM, ASP, mm.

Skapar sedan ett nytt item med namnet UserRegistration med mallen Web Form och använder den just skapade MasterPagen.

I design lägger jag in texten "Användarnamn", en textruta som får namnet UserName och knappen "Registrera". Startar programmet med F5, den inbyggda lokala webbservern går igång och resultatet blir det avsedda. Nu ska koden läggas till som lagrar UserName i databasen.

Jag skapar en kodfil genom att klicka på knappen. Bestämmer mig för att komplettera sidan med meddelandefält Message så att jag kan visa ett meddelande skapat koden. Först visas meddelandet "Label" i rött. Sedan döper jag variabeln till Message och tilldelar den ett innehåll med message.text="Här kommer meddelandet". Det fungerar som det ska.

Nu gäller det att skapa kontakt med databasen, Då det är en känslig passage omger jag denna kod med Try och Catch som gör att ev fel i Try-delen fångas upp och kan hanteras i Catchdelen.

Första satsen är Dim conn As SqlConnection. SqlConnection är ett objekt som svarar för kontakten med MS SQL. Då objektet inte ingår som standard måste det importeras med Imports System.Data.SqlClient. Dessutom krävs Dim comm As SqlCommand. Objektet SqlCommand innehåller uppgifter om hur databasen ska accessas.

Därefter ska en variabel tilldelas namn på databasen. Det gör man på detta krångliga sätt:
Dim connectionstring As String = ConfigurationManager.ConnectionStrings("System91").ConnectionString. Objektet ConfigurationManager ger tillgång till information om databasen.

Därmed kan förbindelsen skapas med databasen: conn = New SqlConnection(connectionstring). Sedan kan objektet sqlcommando tilldelas sqlsatsen som t.ex. styr hämtningen av information från databasen.: comm = New SqlCommand("SELECT type FROM [User] WHERE username='" & UserName.Text & "'", conn). Själva hämtningen sker med conn.Open().

Hanteringen av data hoppar jag över för tillfället och markerar det bara med ett meddelande: message.text="Här ska data hanteras". I stället kompletterar jag koden så att databaskontakten kan testas genom att lägga till conn.Close().

Hela koden blir:
Message.Text = "Här kommer meddelandet"
Try
Dim conn As SqlConnection
Dim comm As SqlCommand
Dim connectionstring As String = ConfigurationManager.ConnectionStrings("System91").ConnectionString
conn = New SqlConnection(connectionstring)
comm = New SqlCommand("SELECT type FROM [User] WHERE username='" & UserName.Text & "'", conn)
conn.Open()
Message.Text = "Här ska data hanteras"
conn.Close()
Catch
End Try

Fortsättning följer i Registrering av användare (2).

Inga kommentarer:

Skicka en kommentar