Avatar billede flar74 Nybegynder
03. marts 2005 - 15:08 Der er 3 kommentarer og
1 løsning

Opdaterings funktion i JSP

Ok er der nogen dedr kan hjælpe: jeg får følgende fejl i nedenstående :

javax.servlet.ServletException: Parameter index out of range (1 > 0).


koden ser således ud:
<%
String brugernavn  = request.getParameter("brugernavn");
String password    = request.getParameter("psw");
String navn        = request.getParameter("navn");
String adresse      = request.getParameter("adresse");
String postnummer  = request.getParameter("postnummer");
String by          = request.getParameter("city");
String tlf          = request.getParameter("tlf");
String mail        = request.getParameter("mail");
String overskrift  = request.getParameter("overskrift");
String kvm          = request.getParameter("kvm");
String annoncetekst = request.getParameter("annoncetekst");
Timestamp date = new Timestamp(System.currentTimeMillis());

if (navn != null && adresse != null && mail != null && brugernavn != null && password != null)
{
    if (navn.length() < 2 || mail.length() < 2 || brugernavn.length() < 2 || password.length() < 2)
    {
        out.println ("Du har ikke udfyldt et af felterne korrekt, prøv igen !");
    }
    else
    {
        String sql = "UPDATE udlejer_data SET brugernavn = " + brugernavn + ", password =" + password +
                ", navn =" + navn + ", adresse =" + adresse + ", postnummer =" + postnummer +
                ", city =" + by +  ", tlf =" + tlf + ", mail =" + mail + ",overskrift =" + overskrift +
                ", kvm =" + kvm + ", annoncetekst =" + annoncetekst + "WHERE brugernavn = " + session.getAttribute("brugernavn");
    Connection connection = new ConnectionManager().getConnection();
    PreparedStatement pstmt = connection.prepareStatement (sql);
    pstmt.setString(1, brugernavn);
    pstmt.setString(2, password);
    pstmt.setString(3, navn);
    pstmt.setString(4, adresse);
    pstmt.setString(5, postnummer);
    pstmt.setString(6, by);
    pstmt.setString(7, tlf);
    pstmt.setString(8, mail);
    pstmt.setString(9, overskrift);
    pstmt.setString(10, kvm);
    pstmt.setString(11, annoncetekst);
    pstmt.setTimestamp(12, date);
    pstmt.executeUpdate();
    pstmt.close();
    connection.close();
   

Hvad gør jeg forkert ?
Avatar billede arne_v Ekspert
03. marts 2005 - 19:27 #1
Når du bruger PreparedStatement skal du angive ? i sql strengen !
Avatar billede arne_v Ekspert
03. marts 2005 - 19:28 #2
String sql = "UPDATE udlejer_data SET brugernavn = ?, password = ? ...


Fordi:

    pstmt.setString(1, brugernavn);
    pstmt.setString(2, password);


sætter så værdier ind hvor ? står !
Avatar billede flar74 Nybegynder
05. marts 2005 - 17:53 #3
glimrende..tak du...klikker du lige så du kan få dine point
Avatar billede arne_v Ekspert
05. marts 2005 - 18:13 #4
kommer her
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