Avatar billede yac Nybegynder
21. marts 2004 - 16:17 Der er 17 kommentarer og
1 løsning

Hente fra en string i query

Jeg har en database, hvor jeg har forfatter og bøger.
Jeg har lavet en List af forfattere. Når en person så vælger et forfatter fra listen, vil jeg gerne lave en query, som henter de bøger, den valgte forfatter fra skrevet.

String navn="hans";
ResultSet books = stat.executeQuery("SELECT books from booklist where author="+navn);

Dette virker ikke.
Hvad skal jeg skrive, så Query bliver opfattet som "SELECT books from booklist where author="hans")
Avatar billede arne_v Ekspert
21. marts 2004 - 16:20 #1
ResultSet books = stat.executeQuery("SELECT books from booklist where author='"+navn+"'");
Avatar billede arne_v Ekspert
21. marts 2004 - 16:21 #2
Altså single dapper omkrint værdien når det er en streng.
Avatar billede yac Nybegynder
21. marts 2004 - 16:32 #3
Må hellere skrive hele lortet, det kan godt kompileres, men det melder fejl, når jeg prøver at køre det i gui.

Object joe=composer.getAccessibleContext(); //henter en selected placering i en list
     
ResultSet tst = stat.executeQuery("SELECT bookname"+
                                          " from booklist where "+
                                          "author="+joe+"");
tst.next();
String name1 = tst.getString("songname");
recordings.add(name1);

den melder en masse fejl, når jeg trykker på den button, der skal udføre denne handling.
Avatar billede arne_v Ekspert
21. marts 2004 - 16:35 #4
Du har heller ikke fået sat single dapper på.
Avatar billede arne_v Ekspert
21. marts 2004 - 16:36 #5
ResultSet tst = stat.executeQuery("SELECT bookname"+
                                          " from booklist where "+
                                          "author='"+joe+"'");
Avatar billede yac Nybegynder
21. marts 2004 - 16:36 #6
hov, der hvor der står songname, skal der står bookname
Avatar billede yac Nybegynder
21. marts 2004 - 16:39 #7
Object joe=composer.getAccessibleContext();

ResultSet tst = stat.executeQuery("SELECT bookname"+
                                  " from booklist where "+
                                  "author='"+joe+"'");
tst.next();
String name1 = tst.getString("bookname");
recordings.add(name1);
Avatar billede yac Nybegynder
21. marts 2004 - 16:40 #8
det virker heller ik.
Avatar billede arne_v Ekspert
21. marts 2004 - 16:41 #9
Hvilke fejl får du ?
Avatar billede yac Nybegynder
21. marts 2004 - 16:43 #10
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Markørtilstanden er ugyldig.

    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)

    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)

    at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)

    at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5702)

    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356)

    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:413)

    at playlist.GUI$VaelgListener.actionPerformed(GUI.java:100)

og en del flere...
Avatar billede yac Nybegynder
21. marts 2004 - 16:44 #11
mon det er fordi joe er et object og ikke en string? hvordan parser jeg den i det tilfælde om til en string

String parsejoe = String.parseString(joe)?
Avatar billede arne_v Ekspert
21. marts 2004 - 16:47 #12
Nej.

Det lyder snarere som om du ikke finder en match !

Hvis der ingen records er som matcher WHERE, så returnerer rs.next() false
og getXxxx(n) giver en fejl.
Avatar billede yac Nybegynder
21. marts 2004 - 16:51 #13
composer er en liste med forfattere. Hvis jeg trykker på et af forfattere i mit gui, og på hent knappen, skulle den gerne hente den forfatter ind på objektet joe.
Måske er det fordi jeg henter den forkert? Normalt plejer jeg bare bruge en get, men det virker ikke når man skal hente fra en List. Jeg troede getAccessibleContext() ville gøre tricket, men det måske forkert?
Avatar billede arne_v Ekspert
21. marts 2004 - 16:53 #14
Prøv og skriv joe ud og se hvad den er.

Jeg tror ikke at den indeholder hvad du tror den gør.
Avatar billede yac Nybegynder
21. marts 2004 - 17:01 #15
Det er vist
Object joe=composer.getAccessibleContext();

der er fejl i. Listen består som sagt af en række String.
Hvordan kalder jeg den valgte string så?
Avatar billede yac Nybegynder
21. marts 2004 - 17:04 #16
getSelectedItem(), det var det jeg skulle bruge.

tak for hjælpen.
Avatar billede yac Nybegynder
21. marts 2004 - 17:04 #17
giver du lige et svar, så du kan få dine point?
Avatar billede arne_v Ekspert
21. marts 2004 - 17:04 #18
ok
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