Metteh
Legacy Member
Was een oefening aan het proberen te maken maar krijg een error die ik niet begrijp.
mijn uitvoer is dit
iemand die me wat verder op weg zou kunnen helpen ?
Code:
//Oefening1 - vervolledig
package oefening1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
public class Oefening1 {
public static void main (String args[])
{
try
{
//punt a - vul aan
String url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/databanken/Films.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(url);
Statement stmt=con.createStatement();
String sql;
int res,j;
// punt b
sql="SELECT * FROM filmgegevens";
Statement st = con.createStatement();
ResultSet rs;
rs = st.executeQuery(sql);
// declareer een resultset rs om te gebruiken voor het uitvoeren van het sql-statement.
// vul aan
System.out.println("==> Volledig overzicht van de tabel ");
// druk de namen van de kolommen af.
ResultSetMetaData rsmd = rs.getMetaData();
// vul aan
System.out.println();
//resultset doorlopen
while (rs.next())
{
// haal de gegevens uit de resultset
// en toon ze op het scherm
String filmTitel = rs.getString(1);
System.out.print(filmTitel+" , ");
String filmGenre = rs.getString(2);
System.out.print(filmGenre+" , ");
// vul aan
}
System.out.println();
// punt c
String sql2 = "INSERT INTO filmgegevens VALUES ('Spiderman 3','actie',89,'http://www.beansholiday.com/flash.html','engels')";
res = stmt.executeUpdate(sql2);
// punt d
System.out.println("==> Filmtitels en duur");
String sql3="SELECT titel, duur FROM filmgegevens ";
rs=stmt.executeQuery(sql3);
rsmd=rs.getMetaData();
for(j=1;j<=rsmd.getColumnCount();j++)
{
System.out.print(rsmd.getColumnLabel(j)+"\t\t" );
}
System.out.println();
// haal de filmtitel en de duur uit de resultset
while (rs.next())
{
String FilmTitel = rs.getString(1);
System.out.println(FilmTitel);
int FilmDuur= rs.getInt(3);
System.out.println(FilmDuur);
System.out.println("\t");
}
System.out.println();
// punt e : aantal engelstalige films
int aantalEngels=0;
String sql1="SELECT taal FROM filmgegevens ";
res=stmt.executeUpdate(sql1);
// haal de filmtaal uit de resultset
while (rs.next())
{
String Filmtaal = rs.getString(5);
System.out.println(Filmtaal);
}
System.out.println("aantal engelstalige films "+ aantalEngels);
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
mijn uitvoer is dit
Code:
==> Volledig overzicht van de tabel
Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , Spiderman 3 , actie , 40 year old virgin , komedie , bewitched , komedie , de bloedbruiloft , drama , het paard van sinterklaas , jeugd , red eye , horror , lord of the rings , horror ,
==> Filmtitels en duur
titel duur
Spiderman 3
java.sql.SQLException: [Microsoft][ODBC Microsoft Access-stuurprogramma]Ongeldige descriptorindex
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(JdbcOdbc.java:3812)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(JdbcOdbcResultSet.java:5639)
at sun.jdbc.odbc.JdbcOdbcResultSet.getInt(JdbcOdbcResultSet.java:582)
at oefening1.Oefening1.main(Oefening1.java:73)
iemand die me wat verder op weg zou kunnen helpen ?

