Avatar billede dragnor Juniormester
13. juni 2007 - 19:44 Der er 16 kommentarer og
1 løsning

Access DB apsx page login

Hej eksperter

Jeg sidder med en hjemmeside, hvor jeg skal bruge en login funktion. Jeg er kommet frem til følgende kode, men jeg har et problem med at håndtere den data jeg får ud af min SQL sætning. kan nogen ud fra den del af koden jeg har vedlagt hjælpe mig med at få det til at virke?

OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\databases\\DB.mdb");
        con.Open();
        OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM login WHERE BrugerNavn = " + Navn.Text, con);
        DataSet dataSet = new DataSet();
        da.Fill(dataSet, "login");
        try
        {
            if(dataSet.Tables[0].Rows[0].ToString() == Pass.Text)
            {
                Response.Redirect("/Forside.asp?name=" + Navn.Text);
            }
           
        }
        catch
        {
        }
        con.Close();
Avatar billede kalp Novice
13. juni 2007 - 19:53 #1
meget meget avanceret login script du har gang i der... så du tjekker kun på om navnet er korrekt?

en anden ting er at du vel havner i catch blokken..

din sql skal sikkert være


OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM login WHERE BrugerNavn = '" + Navn.Text +"'", con);
Avatar billede dragnor Juniormester
13. juni 2007 - 19:56 #2
Undskyld det er mig der har omskrevet og prøvet 1000 forskellige ting. Den skal hedde:
OleDbDataAdapter da = new OleDbDataAdapter("SELECT Password FROM login WHERE BrugerNavn = " + Navn.Text, con);
Avatar billede dragnor Juniormester
13. juni 2007 - 19:58 #3
den fejler i

da.Fill(dataSet, "login");
Avatar billede dragnor Juniormester
13. juni 2007 - 20:03 #4
nu fejler den ikke, underligt!

Men jeg ved stadigvæk ikke hvordan jeg får passwordet ud af mit dataset?
Avatar billede kalp Novice
13. juni 2007 - 20:05 #5
ja det gør den så fordi det den ikke er ind under try catch delen:)
men du skal få styr på din sql.. resten skal se sådan her ud

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\databases\\DB.mdb");

OleDbCommand selectCMD = new OleDbCommand("SELECT * FROM login WHERE BrugerNavn = '" + Navn.Text +"' and Password = '"+ Pass.Text +"'", conn);
selectCMD.CommandTimeout = 30;

OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = selectCMD;

DataSet dataset = new DataSet();
dataset.Fill(da, "login");
Avatar billede kalp Novice
13. juni 2007 - 20:06 #6
ja men hvis dit eget ikke fejler så får du dit password ud med

if(dataSet.Tables[0].Rows[0].ToString() == Pass.Text)

eller

if(dataSet.Tables[0].Rows[1].ToString() == Pass.Text)

afhængig af hvilken plads den lægger på i tabellen! det kan.. så hvis du har en id kolonne først så kan det endda være Rows skal være [3]
Avatar billede dragnor Juniormester
13. juni 2007 - 20:08 #7
er det ikke da.Fill(dataset, "login"); og ikke dataset.Fill(da, "login"); ????
Avatar billede kalp Novice
13. juni 2007 - 20:10 #8
jo selvfølgelig:)
Avatar billede dragnor Juniormester
13. juni 2007 - 20:11 #9
Kompileringsfejl
Beskrivelse: Der opstod en fejl under kompilering af en ressource, der er påkrævet ved behandling af denne anmodning. Læs følgende detaljer om fejlen, og foretag de nødvendige ændringer af kildekoden.

Fejlmeddelelse om kompileringsfunktion: CS0117: 'System.Data.DataSet' indeholder ikke en definition af 'Fill'

Kildefejl:



Linje 39:
Linje 40:        DataSet dataset = new DataSet();
Linje 41:        dataset.Fill(da, "login");
Linje 42:        //da.Fill(dataset, "login");
Avatar billede kalp Novice
13. juni 2007 - 20:13 #10
forresten.. skrev noget forkert før.. password og brugernavn får du sådan her..
if(dataSet.Tables[0].Rows[0][0].ToString() == Pass.Text)
if(dataSet.Tables[0].Rows[0][1].ToString() == Bruger.Text)


f.eks
Avatar billede kalp Novice
13. juni 2007 - 20:15 #11
du skal bruge den linje  du har udkommenteret!
Avatar billede dragnor Juniormester
13. juni 2007 - 20:15 #12
Den fejler i Linje 43

Fejlmeddelelse om kompileringsfunktion: CS0103: Navnet 'dataSet' findes ikke i den aktuelle sammenhæng

Linje 41:        da.Fill(dataset, "login");
Linje 42:
Linje 43:        if (dataSet.Tables[0].Rows[0][0].ToString() == Pass.Text)
Linje 44:        {
Linje 45:        TextBox1.Text = "hej";
Avatar billede dragnor Juniormester
13. juni 2007 - 20:16 #13
ja den linje har jeg rettet :-) my bad
Avatar billede dragnor Juniormester
13. juni 2007 - 20:16 #14
men den fejler stadigvæk i linje 43
Avatar billede kalp Novice
13. juni 2007 - 20:17 #15
du har skrevet dataSet og ikke dataset...

store og små bogstaver.
Avatar billede dragnor Juniormester
13. juni 2007 - 20:21 #16
1000 tak for hjælpen, jeg er kun lige startet med at udvikle i .net og man skal jo lige lære af det og man lære jo bedst af sine fejl :-(

Men det virker nu!!!
Avatar billede kalp Novice
13. juni 2007 - 20:23 #17
det er jeg glad for at høre:)

og ingen årsga:)
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