Avatar billede driis Nybegynder
08. juni 2004 - 13:14 Der er 4 kommentarer og
1 løsning

MySQL database / OdbcDataReader problem

Først skal det siges at jeg er ret grøn i ASP .NET, men har erfaring i andre sprog.

Jeg har en login side, hvor bruger skal indtaste navn og password. Brugernavn og password er gemt i en tabel i en MySQL database. Jeg forsøger at hente disse oplysninger med flg. kodestump:

private void btnOK_Click(object sender, System.EventArgs e)
{
    odbc = new OdbcConnection(strConn);
    odbc.Open();
    OdbcCommand com = odbc.CreateCommand();
    com.CommandText = "SELECT * FROM accountInfo WHERE userName=" + '"' +  txtUser.Text + '"';
               
    try
    {
        OdbcDataReader r = com.ExecuteReader();
        Response.Output.Write(r.Depth);
        if ( r.GetString(2) == txtPass.Text )
            Response.Redirect("home.aspx");
        else
            lblErr.Text = "Forkert brugernavn eller password !";
    }
    catch ( Exception ex )
    {
        lblErr.Text = "Forkert brugernavn eller password ! " + ex.Message;
       
    }
   
}

Det virker ikke. r.Depth er 0, så det ser ud som om at der ikke bliver returneret nogen poster, selvom brugernavnet, der er indtastet, findes i tabellen.

Nogen forslag til, hvordan jeg kommer videre ?
Avatar billede guidmaster Nybegynder
08. juni 2004 - 13:26 #1
Du kan ikke bruge Depth til at finde ud af om der er returneret data. Hvis du arbejder på version 1.1 af .NET frameworket kan du bruge HasRows til at finde ud af om der er data i din datareader.
Avatar billede driis Nybegynder
08. juni 2004 - 13:46 #2
Hmm, det lader til at HasRows SKAL kaldes før man kan læse fra Readeren - kan det passe ?
Avatar billede guidmaster Nybegynder
08. juni 2004 - 13:50 #3
Du skal altid læse fra datareaderen for at få noget data. Læs http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataodbcodbcdatareaderclasstopic.asp for mere info omkring hvordan man arbejder med en DataReader
Avatar billede driis Nybegynder
08. juni 2004 - 14:02 #4
OK, det link hjalp.
Jeg gik ud fra at readeren automatisk var ved første post, når den returneres fra com.ExecuteReader() - men det er den ikke, r.Read() skal kaldes før man er ved første post.

Du må gerne lægge et svar :-)
Avatar billede guidmaster Nybegynder
08. juni 2004 - 14:19 #5
Okay :)
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