Pereiti prie turinio

Rekomenduojami pranešimai

Turiu sukūręs duom bazę su Microsoft Access. Ji turi keturis stulpelius : Username, Password, Score ir Already.

 

Noriu gauti prisijungusio nario taškų skaičių ir parašyti jį. Tačiau, man rodo kad stulpelio su tokiu vardu nėra.

Nors tikrai yra, ir su Already stulpeliu viskas veikia.

 

rt = ps.executeQuery(sql2);
		while(rt.next()){
			String result = rt.getString("Already");
			int points = rt.getint("Score");
			System.out.println(points);
				if(result.equals("Yes"))
					System.out.println("You already answered these questions");
				else
					System.out.println("Go and answer!");
		}
		ps.close();

rt yra ResultSet objektas

ps yra Statement objektas

 

Prisijungta
Connected
java.sql.SQLException: Column not found
at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
at kurybinis.PrisijungimoLangas.actionPerformed(PrisijungimoLangas.java:74)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)

 

Štai error žinutė. O jei nutrinčiau gavimą score, o palikčiau tik already (kuris pasako, ar vartotojas jau darė šitą veiksmą.) viskas veikia. Tai kas čia gali būti blogai?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Case Sensitive gal pavadinimai ir nurodei ne taip?

Kokia užklausa į DB?

Na kad geras pavadinimas.

Tuojau patikrinsiu užklausą. Matyt ten ir lieka problema.

Tiesa, noriu paklausti. Nelabai pagaunu. Pvz užklausa tokia:

String sql2 = "select Already from Table1 where Username = '"+vardas+"'and Password = '"+slaptaz+"'";

 

Tai kodėl tas sql ir nėra 'yes' pvz arba 'no'. Kodėl dar reikia naudoti getString ir panašius metodus nurodant column pavadinimą?

 

 

Padariau naują užklausą. vadinasi:

"select Score from Table1 where Username = '"+vardas+"'and Password = '"+slaptaz+"'";

 

 

pridedu kodo fragmentą:

ps = con.createStatement();
	rt = ps.executeQuery(sql3);
	int points = rt.getInt("Score");
	System.out.println(points);

 

 

Gauta klaida:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getInt(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getInt(Unknown Source)
at kurybinis.PrisijungimoLangas.actionPerformed(PrisijungimoLangas.java:85)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Kaip suprasti tą invalid cursor state???

Redagavo dudeperfect
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai matai, neranda column, nes select'ini tik Already, be Score. Tai jis ir negauna tų. Abudu select'inti reiktų.

 

Invalid cursor state gauni, nes pointer'is (cursor'ius) nerodo į jokią eilutę iš pat pradžių. Tau reikia iš pradžių atlikti rt.next(), kad užklausa pradėtų rodyti į pirmąją rezultato eilutę.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai matai, neranda column, nes select'ini tik Already, be Score. Tai jis ir negauna tų. Abudu select'inti reiktų.

 

Invalid cursor state gauni, nes pointer'is (cursor'ius) nerodo į jokią eilutę iš pat pradžių. Tau reikia iš pradžių atlikti rt.next(), kad užklausa pradėtų rodyti į pirmąją rezultato eilutę.

 

Dėkui. O tai tas ResultSet, pvz pasiimi tuos du laukus mano atveju ir prie kiekvieno tie du laukai ir yra? Ta prasme įvykdžius rt.next() pasislenka tas cursorius į kito rasto rezultato(jei toks yra) užklaustą informaciją? Ir po to metodais getString, int ir pan ją atsirenki?

Redagavo dudeperfect
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...