Avatar billede snils Nybegynder
27. februar 2003 - 12:09 Der er 8 kommentarer og
3 løsninger

Problem med SQL sætning til DB

Hej jeg har det problem at min sql forspørgsel ikke sletter noget i min database. Det er selvom dataerne jeg søger efter, der skal slettes er lagt ind.

Der udskrives på skærmen det første tal i tabellen nr og en SQLException: Data not found

Her søger jeg efter om et tal indtastet i et JTextfield er i DBsen (under atributten nr) og prøver at slette dennes tuple.

try
{
    Statement s = con.createStatement();

    ResultSet rs= s.executeQuery("SELECT *FROM vare");
    int indnr = Integer.parseInt(nr.getText());

    while (rs.next())
    {
    System.out.println("indnr: " +rs.getInt("nr"));
    int dbnr = rs.getInt("nr");
    if (indnr == dbnr)
    {                    String SQL = ("DELETE FROM vare WHERE  nr='"+indnr+"'");
                        s.executeUpdate(SQL);
    }
    }
}
catch (Exception ex){System.out.println(ex);}
Avatar billede medions Nybegynder
27. februar 2003 - 12:14 #1
try
{
    Statement s = con.createStatement();

    ResultSet rs= s.executeQuery("SELECT *FROM vare");
    int indnr = Integer.parseInt(nr.getText());

    while (rs.next())
    {
    System.out.println("indnr: " +rs.getInt("nr"));
    int dbnr = rs.getInt("nr");
    if (indnr == dbnr)
    {                    String SQL = ("DELETE FROM vare WHERE  nr="+indnr);
                        s.executeUpdate(SQL);
    }
    }
}
catch (Exception ex){System.out.println(ex);}

Prøv sådan..

//>Rune
Avatar billede snils Nybegynder
27. februar 2003 - 12:25 #2
Det virkede desværre ikke så meget
Avatar billede medions Nybegynder
27. februar 2003 - 12:26 #3
Hvilken database bruger du?

//>Rune
Avatar billede magoo20000 Nybegynder
27. februar 2003 - 12:29 #4
Du kan bruge denne metode til at returnere dit resultset:

    public int doUpdate(String sql){
        if(con!=null){
            try{
                Statement stat=con.createStatement();
                return stat.executeUpdate(sql);       
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
        return 0;
    }

Det du havde før med nr='" + indNr+ "'" ); er ok!
Avatar billede disky Nybegynder
27. februar 2003 - 12:34 #5
hvis 'nr' er en int, skal du ikke have '' rundt om
Avatar billede snils Nybegynder
27. februar 2003 - 13:48 #6
Det er en access database med en odbc connection.
Avatar billede medions Nybegynder
27. februar 2003 - 14:07 #7
try
{
    Statement s = con.createStatement();

    ResultSet rs= s.executeQuery("SELECT * FROM vare");
    int indnr = Integer.parseInt(nr.getText());

    while (rs.next())
    {
    System.out.println("indnr: " +rs.getInt("nr"));
    int dbnr = rs.getInt("nr");
    if (indnr == dbnr)
    {                    String SQL = ("DELETE * FROM vare WHERE [nr] ="+indnr);
                        s.executeUpdate(SQL);
    }
    }
}
catch (Exception ex){System.out.println(ex);} 

Prøv lige sådan...

//>Rune
Avatar billede snils Nybegynder
27. februar 2003 - 14:12 #8
Der kommer stadig en SQLException der siger: data not found. Den kører kun while-løkken en gang selv om tabellen er 5 tuples lang????
Avatar billede magoo20000 Nybegynder
27. februar 2003 - 14:20 #9
Hvordan ser din kode ud nu?
Avatar billede snils Nybegynder
27. februar 2003 - 14:20 #10
Nå men jeg har løst problemet. Mange tak for for jeres svar.
Avatar billede magoo20000 Nybegynder
27. februar 2003 - 14:26 #11
Hvad var det?
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