Avatar billede snoozie Nybegynder
07. marts 2005 - 18:28 Der er 11 kommentarer og
1 løsning

Brugersystem i C# vha en Acces database

Jeg har fået lavet et nyhedssystem, hvor man logger ind, og så kan man oprette nyheder, eller slette nyheder.

Indtil videre har der bare ligget 1 bruger i selve programmet, og nu vil jeg gerne prøve at lave et brugersystem, så man kan oprette, og bruge forskellige brugere.

Mit problem er: Når personen har valgt et brugernavn og kode, skal programmet tjekke om brugernavnet allerede findes i databasen. Hvis brugernavnet allerede findes skal den levere et eller andet tilbage, fx en bool med true/false. Så kan jeg nemlig nemt lægge det ind i en if-sætning og så kan jeg fortsætte derfra.

Men jeg kan ikke finde ud af hvordan jeg kan tjekke om brugernavnet findes!

Hjælp søges!

Jeg bruger SharpDevelop, C#, og der bliver brugt oleDbDataAdapter, oleDbConnection og dataSet.
Avatar billede arne_v Ekspert
07. marts 2005 - 18:32 #1
Til det formål ville jeg jo nok ikke bruge DataSet men kun
OldDbConnection og OleDbCommand og ExecuteScalar på en
SELECT brugernavn FROM brugertabel WHERE brugernavn='...' AND password='...'
og så teste for om den returnerer null
Avatar billede snoozie Nybegynder
07. marts 2005 - 18:39 #2
hvordan kan man teste om den returnerer null?
Avatar billede arne_v Ekspert
07. marts 2005 - 18:42 #3
if(cmd.ExecuteScalar() != null) {
  ...
}
Avatar billede snoozie Nybegynder
07. marts 2005 - 18:59 #4
bool brugernavnfindes;
string query = "SELECT * FROM Logind WHERE Brugernavn = " + NyBrugernavnBox.Text;
oleDbConnection1.Open();
OleDbCommand myCommand = new OleDbCommand();
myCommand.CommandText = query;
myCommand.Connection = oleDbConnection1;
myCommand.ExecuteNonQuery();
oleDbConnection1.Close();
                   
if(myCommand.ExecuteScalar() == null)
{
    brugernavnfindes = false;
}
else
{
    brugernavnfindes = true;
}

Der kommer en fejl der siger at den manglede en eller flere parametre
Avatar billede arne_v Ekspert
07. marts 2005 - 19:02 #5
De her 2 skal ihvertfald slettes:

myCommand.ExecuteNonQuery();
oleDbConnection1.Close();
Avatar billede arne_v Ekspert
07. marts 2005 - 19:03 #6
Hvilken linie får du fejlen i ?
Avatar billede snoozie Nybegynder
07. marts 2005 - 19:26 #7
Den kommer først med fejlen når jeg trykker på opretnybruger knappen. Den kommer med samme fejl efter jeg har slettet de to linjer.
Avatar billede arne_v Ekspert
07. marts 2005 - 19:30 #8
Den må vel skrive lidt mere om hvor fejlen sker ????
Avatar billede arne_v Ekspert
07. marts 2005 - 19:31 #9
string query = "SELECT * FROM Logind WHERE Brugernavn = " + NyBrugernavnBox.Text;

skal nok være:

string query = "SELECT * FROM Logind WHERE Brugernavn = '" + NyBrugernavnBox.Text + "'";
Avatar billede snoozie Nybegynder
07. marts 2005 - 19:38 #10
det virker nu. det var de små ' det gjorde en forskel.

Hvad gør ExecuteNonQuery(); egentlig, hvis jeg må spørge?

Tusind tak!
svar
Avatar billede arne_v Ekspert
07. marts 2005 - 19:41 #11
ExecuteNonQuery bruges til UPDATE/INSERT/DELETE sætninger
Avatar billede arne_v Ekspert
07. marts 2005 - 19:41 #12
svar
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