vaihkeahko sql-kysymys

Olen tehnyt javalla graafisen ohjelman, joka hakee ja päivittää Mysql tietokannassa olevia tietoja.

Tietokanta sisältää useita eri projekteja ja ongelmani on se, että pitäisi saada päivitykset kohdistumaan juuri tiettyy projektiin sen numeronmukaan(proj_id).

Ohjelmassani on teksti kenttä johon käyttäjä antaa projektinnumeron(jTextField13) ja lisäksi kenttä jonka tietojen pitäisi mennä tietokantaan(kentta4).

Alla oleva sql lause toimii mutta se ei kohdistu käyttäjän valitsemaan tietokantaan.

String proj = jTextField13.getText();
String paivitus=null;
paivitus = kentta4.getText();
String sqlLause = "insert into hours (inall) values(" paivitus ")";

//eli kyseinen koodi lähettää tiedot mitkä se saa kentta4:stä tietokantaan, mutta pitäisi myös saada ympättyä jtextfield13:sta saatu numero mukaan niin päivitys kohdistuisi oikeaan tietokantaan.

Olen esim yrittänyt seuraavaa lausetta tuloksetta:
String sqlLause = "insert into hours (inall) values(" paivitus ") where proj_id = proj";

Joku tuossa lauseessa mättää, mutta mikä??

Olisin todella kiitollinen avusta.
ps.kerrankin näin päin, että itse etsii apua:)
5518
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

lainausmerkit.

where proj_id = \'proj\'";

että se vertaa sitä stringinä

Äänestä
  • hmm ei se oikein tuo pirun vastaus toiminut. Muita ehdotuksia?

    Äänestä

  • Auttaja(nyt autettava) kirjoitti:

    hmm ei se oikein tuo pirun vastaus toiminut. Muita ehdotuksia?

    kertoisit mikä se virhe on. Onko se SQL-birhe vai kääntäjä huutaa jotain muuta?

    Esimerkiksi sulla on siellä sisäkkäisiä lainausmerkkejä stringissä ja siitä se ainakin huutaa.

    String testi = " jee tämä ei todellakaan toimi ("jee")";

    Toi on väärin ja seuraava oikein:

    String testi = "jee tämä saattais (\"jo\") mennä läpi";

    Eli jos haluaa stringin siällä näyttää lainausmerkkejä, niin ne pitää kertoa javalle näin \"

    Äänestä

  • Piru kirjoitti:

    kertoisit mikä se virhe on. Onko se SQL-birhe vai kääntäjä huutaa jotain muuta?

    Esimerkiksi sulla on siellä sisäkkäisiä lainausmerkkejä stringissä ja siitä se ainakin huutaa.

    String testi = " jee tämä ei todellakaan toimi ("jee")";

    Toi on väärin ja seuraava oikein:

    String testi = "jee tämä saattais (\"jo\") mennä läpi";

    Eli jos haluaa stringin siällä näyttää lainausmerkkejä, niin ne pitää kertoa javalle näin \"

    Tein lauseen ohjeidesi mukaan:


    String sqlLause = "insert into hours (inall) "
    "values(" paivitus ")where proj_id = \'proj\'";

    Virhe on se perinteinen. "You have an error in your SQL syntax.

    Olen tosi kiitollinen kun yrität auttaa minua.

    Äänestä

  • Auttaja(nyt autettava) kirjoitti:

    Tein lauseen ohjeidesi mukaan:


    String sqlLause = "insert into hours (inall) "
    "values(" paivitus ")where proj_id = \'proj\'";

    Virhe on se perinteinen. "You have an error in your SQL syntax.

    Olen tosi kiitollinen kun yrität auttaa minua.

    Tällä lauseella sain toimimaan KIITOS piru, kun johdattelit minua oikealle tielle.

    String sqlLause= "update hours set inall = '" paivitus "'"
    "where proj_id = " proj;

    Äänestä

Kommentoi aloitusta


Auttaja(nyt autettava) kirjoitti:

Olen tehnyt javalla graafisen ohjelman, joka hakee ja päivittää Mysql tietokannassa olevia tietoja.

Tietokanta sisältää useita eri projekteja ja ongelmani on se, että pitäisi saada päivitykset kohdistumaan juuri tiettyy projektiin sen numeronmukaan(proj_id).

Ohjelmassani on teksti kenttä johon käyttäjä antaa projektinnumeron(jTextField13) ja lisäksi kenttä jonka tietojen pitäisi mennä tietokantaan(kentta4).

Alla oleva sql lause toimii mutta se ei kohdistu käyttäjän valitsemaan tietokantaan.

String proj = jTextField13.getText();
String paivitus=null;
paivitus = kentta4.getText();
String sqlLause = "insert into hours (inall) values(" paivitus ")";

//eli kyseinen koodi lähettää tiedot mitkä se saa kentta4:stä tietokantaan, mutta pitäisi myös saada ympättyä jtextfield13:sta saatu numero mukaan niin päivitys kohdistuisi oikeaan tietokantaan.

Olen esim yrittänyt seuraavaa lausetta tuloksetta:
String sqlLause = "insert into hours (inall) values(" paivitus ") where proj_id = proj";

Joku tuossa lauseessa mättää, mutta mikä??

Olisin todella kiitollinen avusta.
ps.kerrankin näin päin, että itse etsii apua:)

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu