Avatar billede pumpin Nybegynder
02. september 2005 - 00:06 Der er 11 kommentarer og
1 løsning

problemmer med login

hej eksperter

jeg har et lille problem med et login script jeg har ville lave til min side, jeg skulle mene at fejlen lå i min if sætning, fordi, jeg er ikke helt sikker på hvordan man styre hvilken row min reader selecter i DB.. well her kommer koden

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        string strConnection = "Provider=Microsoft.jet.OleDB.4.0;";
        strConnection += @"Data Source=" + Server.MapPath("cms.mdb");

        string getSQL = "SELECT user_id , password FROM users WHERE username='"+LoginUserName.Text+"'";

        OleDbConnection objConnection = new OleDbConnection(strConnection);

        OleDbCommand objCommand = new OleDbCommand(getSQL, objConnection);

        OleDbDataReader objReader = null;

        objConnection.Open();

        objReader = objCommand.ExecuteReader();

        //tror det er objReader[3] den er gal med :)
        if(objReader[3] == LoginPassword.Text)
        {
            Session.Add("user_idfraDB", 1);
        }
    }
Avatar billede ksoren Nybegynder
02. september 2005 - 00:40 #1
prøv om password ikke ligger på index 1
Avatar billede ksoren Nybegynder
02. september 2005 - 00:42 #2
Metoden er overloaded, så objReader["password"] virker muligvis også
Avatar billede ksoren Nybegynder
02. september 2005 - 00:46 #3
Det er nok også værd at kontrollere, om der overhovedet er returneret noget

if(objReader.HasRows && objReader[1] == LoginPassword.Text)
Avatar billede pumpin Nybegynder
02. september 2005 - 00:54 #4
hvis jeg skriver mit login og password som ligger i min DB så giver den mig den her fejl:: No data exists for the row/column. 

hvis jeg bare taster noget ind så virker det fint
Avatar billede pumpin Nybegynder
02. september 2005 - 00:54 #5
nogen ide ?
Avatar billede pumpin Nybegynder
02. september 2005 - 00:57 #6
hvis jeg bare taster noget ind så virker det fint.. mener noget tilfældigt.. så gør den som den skal ( loger ikke ind) og laver ingen fejl
Avatar billede ksoren Nybegynder
02. september 2005 - 00:57 #7
Jeg har lige bladret lidt i MSDN, prøv sådan:

if(objReader.Read() && (String)objReader[1] == LoginPassword.Text)

ellers vent på arne :)
Avatar billede pumpin Nybegynder
02. september 2005 - 01:04 #8
cool det virker sku dog ikke med tal som index på DB rækkerne. men sådan her

if( objReader.Read() && (string)objReader["password"] == LoginPassword.Text)

hvad gør (strin) i forhold til .Tostring() ??
Avatar billede pumpin Nybegynder
02. september 2005 - 01:05 #9
husk et svar :D
Avatar billede ksoren Nybegynder
02. september 2005 - 01:42 #10
(string) er en cast, så den fejler (smider en InvalidCastException), hvis feltet er af type, som ikke kan castes til en streng.

ToString er specifik til datatypen, så den vil også virke selvom det ikke er en streng

int i = 2;
string s = (string)i; // går ikke
string s = i.ToString(); // virker
Avatar billede pumpin Nybegynder
07. september 2005 - 19:19 #11
kast lige et svar ksoren!
Avatar billede pumpin Nybegynder
20. februar 2006 - 16:55 #12
giv mig en priv message hvis du vil have dine points som du har fortjent. lukker
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