Avatar billede mikael_l Nybegynder
26. maj 2008 - 11:13 Der er 6 kommentarer og
1 løsning

SELECT fra Database til en equals-metode

Hej...

Jeg er igang med et projekt, hvor jeg skal have  et Billet nr. og en adgangskode ud fra min database v.h.a SELECT-metoden, hvor jeg så derefter skal sammenligne det med det jeg skriver i mine tekstfelter.

Jeg kan sagtens få det til at virke hvis jeg equals'er det jeg indtaster til et navn jeg har skrevet på forhånd med "" i koden.

Fx. if ("Navn".equals(Loginbilletnr) && "Password".equals(Loginadgangskode))

Class.forName("com.mysql.jdbc.Driver");
  Connection con = DriverManager.getConnection("jdbc:mysql://localhost/dsb?user=****&password=****");
  Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery("SELECT billetnr, pass FROM billet");

  while(rs.next())
    {
      String Billetnr = rs.getString("billetnr");
      String Adgangskode =rs.getString("pass");
    }

      String Loginbilletnr = request.getParameter("loginbilletnr");
      String Loginadgangskode = request.getParameter("loginadgangskode");

  if (Billetnr.equals(Loginbilletnr) && Adgangskode.equals(Loginadgangskode))

{
    session.setAttribute("logget ind", "ja");
    response.sendRedirect("internet.jsp");
  }
  else
  {
    session.removeAttribute("logget ind");
    out.println("<h1>Loginfejl</h1><br><br>Det indtastede billet nr. eller adgangskode er forkert.<br><br>Prøv igen.");
  }


Hvor er fejlen....?
Jeg håber I kan hjælpe?

Mvh Mikael L.
Avatar billede mikael_l Nybegynder
26. maj 2008 - 11:14 #1
Jeg får følgende fejlmeddelelse:

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 23 in the jsp file: /DSBInternet/login/login.jsp
Billetnr cannot be resolved
20:        String Loginbilletnr = request.getParameter("loginbilletnr");
21:        String Loginadgangskode = request.getParameter("loginadgangskode");
22:
23:  if (Billetnr.equals(Loginbilletnr) && Adgangskode.equals(Loginadgangskode))
24: 
25: {
26:    // sæt attributten "logget ind" i sessionen
Avatar billede erikjacobsen Ekspert
26. maj 2008 - 12:34 #2
erklær dit Billetnr udenfor din while-løkke.
Avatar billede erikjacobsen Ekspert
26. maj 2008 - 12:38 #3
Og det vil så fjerne compilerfejlen. Men hvad er det du egentlig vil? Du henter alle rækker fra billet, løber dem igennem med din while. Og når du så er dem allesammen igennem kigger på i bedste fald på den sidste, og sammenligner.

Kunne der være lidt fidus i at udvide din select-sætning, så den har en WHERE-del?
Avatar billede mikael_l Nybegynder
26. maj 2008 - 12:43 #4
Hej Erik...
Takker, jeg prøver lige... :-)
Det har jeg også prøvet med og fået samme resultat, har prøvet ALT MULIGT! :-)

Men jeg prøver lige og ser og det virker... :-)
Avatar billede mikael_l Nybegynder
26. maj 2008 - 13:06 #5
Hej... :-)

Nu får jeg en ny fejl....? :-S

org.apache.jasper.JasperException: An exception occurred processing JSP page /DSBInternet/login/login.jsp at line 15

12:  ResultSet rs = stmt.executeQuery("SELECT billetnr, pass FROM billet");
13:
14:     
15:      String Billetnr = rs.getString("billetnr");
16:      String Adgangskode = rs.getString("pass");
17:  //  while(rs.next())
18:  //    {


Hvordan skulle den WHERE-del så se ud når jeg skal have et billetnr og et pass?
Avatar billede erikjacobsen Ekspert
26. maj 2008 - 13:35 #6
Du kan ikke aflæse din rs før du har sagt rs.next til den. Det er også kun erklæringen du i givet fald skulle flytte udenfor. Du kunne fx. nøjes med at hente det angivne billetnr i databasen - det er det den er god til.

Men du skal nok lige gennemtænke hvad du vil - eller finde et godt eksempel (skoleopgave...?)
Avatar billede mikael_l Nybegynder
26. maj 2008 - 14:44 #7
Jeg har fundet fejlen, og har fået den til det jeg ville... :-) Det var den krøllede parentes efter de to første string's.
Jeg satte den ned aller nederst, efter den sidste }

:-)
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
Kurser inden for grundlæggende programmering

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