Archief - [JAVA] SQL query

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ietzie

Legacy Member
Hey,

ff mijn probleem proberen uit te leggen. Ik heb een projectje gemaakt met daarin een GUI en een Acces DB erachter. De GUI is in orde maar het SQL gedeelte doet nog moeilijk.

Ik heb een class Frame2, een interface ConnectieInterface en een class Connectie.

Frame2
Code:
		///////// SQL Gedeelte /////////////

		Connectie con = new Connectie();
		con.maakConnectie();
		gegevens = con.haalGegevensOp(); 
		kolomnaam = con.haalKolomNamenOp();

***********************************************
GUI code komt hiertussen ect
***********************************************

	
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btnUpdate) {
			int studNr = Integer.ParseInt(txtStudnr.getText());
			
			String sql = "UPDATE studenten SET StudentNummer= '" +studNr ;
			con.update(sql);

		}

	}

Connectie frame
Code:
public void update(String sql){
	try {
			Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
			int res = stmt.executeUpdate(sql);
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
	}

In de interface staan gewoon een paar strings om de connectie te maken via de methode maakConnectie() die in de class Connectie staat, dit even terzijde.

Ik gebruik dus een zelfgemaakte methode update() om de gegevens te updaten in de DB. Ik heb verbinding met de DB want ik kan de gegevens zien die aanwezig zijn maar kan alleen geen update uitvoeren.

Ik krijg nu deze foutmeldingen als ik mijn browsel run en op update druk :

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: " 46"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at Eindproject.Frame2.actionPerformed(Frame2.java:112)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


De error die hij geeft op lijn 112 in mijn Frame2 slaat terug op "con.update(sql);" .

Tot zo ver mijn megapost, mocht er iets niet duidelijk zijn let me know dan zal ik extra code/uitleg geven.

Mee

Legacy Member
In denk dat ge die enkele quote nog moet sluiten.
Dus ipv
Code:
String sql = "UPDATE studenten SET StudentNummer= '" +studNr ;
zo:
Code:
String sql = "UPDATE studenten SET StudentNummer= '" +studNr + " ' ";

Of anders die enkele ' eens weglaten.

Messias.

Legacy Member
Kweetnie, maar als ge toch per se uw eigen sql wilt schrijven, moet ge maar eens kijken naar PreparedStatement. Daar hebt ge setter methodes voor parameters, dan moet ge u op z'n minst niet meer liggen bezighouden met het zelf escapen van uw sql. :s

ietzie

Legacy Member
De quotes zijn het probleem niet,heb ze gesloten en geen verandering.

Merci voor de reacties btw

Obliv`

Legacy Member
De eerste regel van je stracktrace zegt toch al genoeg niet? Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: " 46"

Gebruikt parameters ipv zelf uw statement op de bouwen!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan