anoniem Geplaatst: 12 december 2002 Delen Geplaatst: 12 december 2002 Mijn probleem is het volgende. Ik ben met JSP tables aan het maken met gegevens uit de database. Alle publicaties hebben een auteur en een titel, maar niet allemaal een subtitel. Dus probeer ik te controleren op een [b:0f17581f26]null[/b:0f17581f26] waarde in de DB. Dat werkt dus niet. Ik heb ook geprobeerd alle lege velden dan maar in te vullen met "X" en daat op te checken maar dat wil ook niet. [quote:0f17581f26]java.sql.SQLException: No data found[/quote:0f17581f26] Dat wist ik, daar zocht ik juist op. Dit zegt hij overigens ook bij "X". [code:1:0f17581f26]Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:era_acc"); Statement stmt = con.createStatement(); ResultSet AA = stmt.executeQuery("SELECT * FROM publications order by ID DESC;"); while(AA.next()){%> <TD> <span class ="author"><%=AA.getString("author")%></span> <BR> <span class ="titles"><%=AA.getString("titles")%></span> <BR> <% //***hier de check*** if (AA.getString("subtitle") != null) {%> <I><span class ="subtitle"><%=AA.getString("subtitle")%></I></span> <%}%> </TD>[/code:1:0f17581f26] Wie-oh-wie? :cry: Quote Link naar reactie
anoniem Geplaatst: 12 december 2002 Auteur Delen Geplaatst: 12 december 2002 testen op (een java) null zou eigenlijk moeten werken. is de default waarde misschien een lege string ("")? anders probeer je't a.d.h.v ResultSet's wasNull() Quote Link naar reactie
anoniem Geplaatst: 12 december 2002 Auteur Delen Geplaatst: 12 december 2002 [code:1:16d911a499]<% //***hier de check*** if (!AA.wasNull) {%> <I><span class ="subtitle"><%=AA.getString("subtitle")%></I></span> <%}%> [/code:1:16d911a499] Helaas werkt dit ook niet... hij gaat uit van de hele recordset. (Dus ze komen er alsnog allemaal te staan.) [quote:16d911a499][b:16d911a499]wasNull[/b:16d911a499] [i:16d911a499]public boolean wasNull()[/i:16d911a499] throws SQLExceptionReports whether the last column read had a value of SQL NULL. Note that you must first call one of the getter methods on a column to try to read its value and then call the method wasNull to see if the value read was SQL NULL. [/quote:16d911a499] Quote Link naar reactie
anoniem Geplaatst: 12 december 2002 Auteur Delen Geplaatst: 12 december 2002 doe je't wel correct? wasNull zegt iets over de laatst opgevraagde waarde uit de ResultSet dus eerst: AA.getString("subtitle") dan de check (was 'subtitle' NULL?): AA.wasNull() Quote Link naar reactie
anoniem Geplaatst: 12 december 2002 Auteur Delen Geplaatst: 12 december 2002 ***FRUSTRATIE*** Dan maar de hele code: [code:1:19673f0ee7]Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con = DriverManager.getConnection("jdbc:odbc:era_acc"); Statement stmt = con.createStatement(); ResultSet AA = stmt.executeQuery("SELECT * FROM publications order by ID DESC;"); %> <H1>Publications</H1> <TABLE> <TR><TH>Reference</TH><TH>options</TH></TR> <% while(AA.next()){%> <TR> <TD> <span class ="author"><%=AA.getString("author")%></span> <BR> <span class ="titles"><%=AA.getString("titles")%></span> <BR> <%AA.getString("subtitle"); if (!AA.wasNull()){ %> <I><span class ="subtitle"><%=AA.getString("subtitle")%></I></span> <%}%> </TD> <TD> <%AA.getString("optionslink"); if (!AA.wasNull()){%> <CENTER><a href = "<%=AA.getString("optionslink")%>"><IMG SRC="graph/ie.gif" alt = "Hyperlink"></a></center> <%}%> </TD> </tr> <%} if (AA!=null) AA.close(); if (stmt!=null) stmt.close(); if (con!=null) con.close(); %>[/code:1:19673f0ee7] En dan gaat het vooral om dit stukje: [b:19673f0ee7][size=9:19673f0ee7]<%AA.getString("subtitle"); if (!AA.wasNull()){ %>[/size:19673f0ee7][/b:19673f0ee7] Maar dan geeft hij nog steeds de [color=red:19673f0ee7]No data found [/color:19673f0ee7]error. Moet ik nog iets (SQL error oid) catchen? Quote Link naar reactie
anoniem Geplaatst: 12 december 2002 Auteur Delen Geplaatst: 12 december 2002 de eerste keer in een variabele opslaan: String subtitle = AA.getString("subtitle"); dan de check: AA.wasNull(); dan eventueel verder werken met variabele subtitle (dus niet opnieuw de resultset queryen) Quote Link naar reactie
anoniem Geplaatst: 12 december 2002 Auteur Delen Geplaatst: 12 december 2002 [size=18:cb901f9140][color=blue:cb901f9140][b:cb901f9140]YES![/b:cb901f9140][/color:cb901f9140][/size:cb901f9140] [code:1:cb901f9140]<%tanga = AA.getString("subtitle"); if (!AA.wasNull()){ %> <I><span class ="subtitle"><%=tanga%></I></span> <%}%>[/code:1:cb901f9140] Bedankt man! :wink: Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen