Gå til innhold

[Løst] Bruke variabel i et 'executeQuery' statement.


Anbefalte innlegg

Skrevet

Hvordan kan jeg bruke en varabel når jeg skal foreta en database spørring ved hjelp av executeQuery?

 


String variabelnavn = "java";

ResultSet rs = stmt.executeQuery("SELECT navn FROM studenter WHERE fag=*variabelnavn*");

variabelnavn vil i praksis få en verdi som bruker skriver inn.

 

edit: skrivefeil.

Videoannonse
Annonse
Skrevet

ResultSet rs = stmt.executeQuery("SELECT navn FROM studenter, WHERE fag = " + variabelnavn);

 

Verre var det ikke :)

 

lk

Skrevet

Hmm, husket å fjerne kommaet etter 'navn' og 'studenter' som du har i spørringen din?

Dette burde iafall fungere

ResultSet rs = stmt.executeQuery("SELECT navn FROM studenter WHERE fag = "" + variabelnavn + """);

 

Hvis ikke er det noe galt et annet sted.

 

lk

Skrevet

Denne funker


ResultSet rs = stmt.executeQuery(

"SELECT cid, uname FROM users WHERE cid='s001'");

 

disse funker ikke


ResultSet rs = stmt.executeQuery(

"SELECT cid, uname FROM users WHERE cid=" + id_num);



ResultSet rs = stmt.executeQuery(

"SELECT cid, uname FROM users WHERE cid="" + id_num + """);



der id_num er s001. Skriver ut variabelen rett før queryen. Har også prøvd med forskjellige verdier på id_num.

Skrevet

Bør du ikke ha


ResultSet rs = stmt.executeQuery( 

"SELECT cid, uname FROM users WHERE cid= '"+variabelnavn+"'"); 

 

Eller er det jeg som roter?

Skrevet

Kjapt googlesøk typer på at 'invalid identifier' viser til at du forsøker å bruke et felt som ikke finnes. Vil tro at det smetho foreslår burde fungere, men det virker jo rimelig teit av oracle å kreve at du bruker ' rundt stringer og nekte å bruke ". Mulig at det er en hensikt med det, men jeg kan ikke komme på hva det skulle være...

 

 

lk

Skrevet

Vel, det er slik jeg har lært det :) Men forskjellige DBMS har jo forskjellige måter å gjøre ting på. Syns selv bruk av ' gjør det lettere å bygge opp SQL-setninger fra et program enn ", men det er vel en vanesak.

Skrevet
Bør du ikke ha

ResultSet rs = stmt.executeQuery( 

"SELECT cid, uname FROM users WHERE cid= '"+variabelnavn+"'"); 

 

Eller er det jeg som roter?

Denne funket. Takk for hjelpa.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...