Avatar billede dk_zerocool Nybegynder
05. december 2002 - 19:37 Der er 63 kommentarer og
2 løsninger

DatabaseHandler??

Problem:

Jeg har en klasse som skal styre alle databasekald, men nu har jeg siddet med det længe nok og ønsker lidt hjælp.

Hvordan bruger jeg så DatabaseHandleren fra en anden klasse Login, som skal gennemløbe en tabel for brugernavne som passer til det brugeren har indtastet i et login/password-felt i GUI?? 


import java.sql.*;

public class DatabaseCon {
 
private Connection con;
 
  public DatabaseCon() {
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      String url = "jdbc:odbc:kalender";
      con = DriverManager.getConnection(url, "", "");
    } catch ( Exception e ) {
      System.out.println( e );
    }
  }
 
  public void sqlResult(String sql) {
    try {
    Statement statement = con.createStatement();
    ResultSet set = statement.executeQuery( " " + sql + " " );
    } catch ( SQLException e ) {
      System.out.println( e );
 
  }

  }
 
  public void sqlUpdate(String sql) {
    try {
    Statement statement = con.createStatement();
    statement.executeUpdate(" " + sql + " ");
    } catch ( SQLException e ) {
      System.out.println( e );
  }

  }
 
  public void close() {
    try {
      con.close();
    } catch ( Exception e ) {
      System.out.println( "Der skete en fejl ved lukningen af forbindelsen" +e);
    }
  }
  }
Avatar billede disky Nybegynder
05. december 2002 - 19:55 #1
ret
public void sqlResult(String sql) {
    try {
    Statement statement = con.createStatement();
    ResultSet set = statement.executeQuery( " " + sql + " " );
    } catch ( SQLException e ) {
      System.out.println( e );
 
  }

  }

til
public ResultSet sqlResult(String sql) {
    try {
    Statement statement = con.createStatement();
    ResultSet set = statement.executeQuery( " " + sql + " " );
    } catch ( SQLException e ) {
      System.out.println( e );
 
  }
return set;

  }

Og løb så igennem dit resultset i den metode son kalde sqlResult() metoden
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 19:58 #2
Jeg får bare denne besked:

DatabaseCon.java:25: cannot resolve symbol
symbol  : variable set
location: class DatabaseCon
    return set;
          ^
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 19:59 #3
Og her er metoden som kalder sqlResult():

public boolean checkLogin( String brugerid, String password ) {
    try {
      dbcon.sqlResult( "SELECT BrugerID FROM Medlem WHERE BrugerID='" +brugerid +"' AND Password='" +password +"'" );
      if ( set.next() )
        return true;
Avatar billede olly Nybegynder
05. december 2002 - 20:03 #4
public ResultSet sqlResult(String sql) {
ResultSet set;
    try {
    Statement statement = con.createStatement();
    set = statement.executeQuery( " " + sql + " " );
    } catch ( SQLException e ) {
      System.out.println( e );
 
  }
return set;

  }
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:05 #5
olly:

DatabaseCon.java:26: variable set might not have been initialized

    return set;
Avatar billede olly Nybegynder
05. december 2002 - 20:06 #6
public boolean checkLogin( String brugerid, String password )
{
ResultSet set;
    try {
      set = dbcon.sqlResult( "SELECT BrugerID FROM Medlem WHERE BrugerID='"
    +brugerid +"' AND Password='" +password +"'" );
      if ( set.next() )
        return true;
    }
Avatar billede mfalck Praktikant
05. december 2002 - 20:06 #7
ResultSet set;
    try {
    Statement statement = con.createStatement();
    set = statement.executeQuery( " " + sql + " " );
    } catch ( SQLException e ) {
      System.out.println( e );

  } finally {
      return set;
}
Avatar billede olly Nybegynder
05. december 2002 - 20:07 #8
Så lav en ResultSet set = NULL;

Var en dummefejl ;)
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:13 #9
KANON....nu virker det sgu, vil du ikke ha et par point mfalck
Avatar billede olly Nybegynder
05. december 2002 - 20:14 #10
Selvfølgelig virker der :)
Avatar billede mfalck Praktikant
05. december 2002 - 20:15 #11
nej det går nok .. olly har vist lavet al arbejdet.
Avatar billede olly Nybegynder
05. december 2002 - 20:15 #12
Ahhh... Tag du bare en 10-20 point... Jeg klare mig jo nok...
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:18 #13
I skal nok få pointene men jeg har lige et spørgsmål mere:

Hvis jeg skal gøre det samme med en executeUpdate:

public void sqlUpdate(String sql) {
    try {
    Statement statement = con.createStatement();
    statement.executeUpdate(" " + sql + " ");
    } catch ( SQLException e ) {
      System.out.println( e );
  }

Hvad gør jeg så ???
Avatar billede mfalck Praktikant
05. december 2002 - 20:18 #14
bukker og nejer
Avatar billede olly Nybegynder
05. december 2002 - 20:20 #15
Det er skam ikke noget at bukke for... Ret skal være ret...

dk_zerocool>>

Jeg er ikke med... Hvad med den?
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:22 #16
Jeg har sqlUpdate() som jeg skal bruge som den anden, den skal bare indsætte nogle værdier i en database:

dbcon.sqlUpdate( "INSERT INTO MEDLEM VALUES( '" + ID + "', '" + PS + "', '" + FN + "', '" + EN + "', '" + IN + "', '" + AD + "', '" + AD2 + "', '" + PN + "', '" + TLF + "', '" + MTLF + "', '" + EM + "', '" + GID + "' )" );

Men jeg får denne fejl:

java.lang.NullPointerException
Avatar billede olly Nybegynder
05. december 2002 - 20:25 #17
Ja og den returnere en fejl... Har du evt prøvet at samle den sqlstring og lave en system.out.println på den for at se om den er korekt? Har mistanke til den!
Avatar billede olly Nybegynder
05. december 2002 - 20:26 #18
Er de alle sammen godt nok strings? Også id?
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:27 #19
yep..der er 3 bogstaver og 4 tal
Avatar billede olly Nybegynder
05. december 2002 - 20:29 #20
Okay... Og du er sikker på din insert?
Avatar billede mfalck Praktikant
05. december 2002 - 20:29 #21
hmm .. nu skal jeg ikke blande mig i dit db-design .. men som hovedregel er det bedst at holde sig til integers .. de fleste databaser hånderer integers hurtigere end strenge ... men det er vist et sidespor :-)
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:31 #22
Det foregår sådan at den "fanger" noget tekst fra nogle gui-felter, og smider det ind i db.

      String ID  = BrugerID_IN.getText();
      String PS  = PasswordIN.getText();
      String FN  = FornavnIN.getText();
      String EN  = EfternavnIN.getText();
      String AD  = AdresseIN.getText();
      String AD2  = Adresse2IN.getText();
      String PN  = PostnummerIN.getText();
      String IN  = InitialerIN.getText();
      String TLF  = TlfIN.getText();
      String MTLF = MobilTlfIN.getText();
      String EM  = EmailIN.getText();
      String GID  = GruppeID_IN.getText();

      dbcon.sqlUpdate( "INSERT INTO MEDLEM VALUES( '" + ID + "', '" + PS + "', '" + FN + "', '" + EN + "', '" + IN + "', '" + AD + "', '" + AD2 + "', '" + PN + "', '" + TLF + "', '" + MTLF + "', '" + EM + "', '" + GID + "' )" );
Avatar billede olly Nybegynder
05. december 2002 - 20:31 #23
Giver mfalck helt ret... Er helt klart bedst at bruge int... Netop fordi databasen har nemmere ved at søge på disse og primærnøglen bliver altid brugt...
Avatar billede mfalck Praktikant
05. december 2002 - 20:33 #24
prøv evt at lave en

e.printStackTrace(System.out);

den er lidt mere snakkesagelig end bare System.out
Avatar billede mfalck Praktikant
05. december 2002 - 20:34 #25
prøv evt

String sql = "INSERT INTO MEDLEM VALUES( '" + ID + "', '" + PS + "', '" + FN + "', '" + EN + "', '" + IN + "', '" + AD + "', '" + AD2 + "', '" + PN + "', '" + TLF + "', '" + MTLF + "', '" + EM + "', '" + GID + "' )";

System.out.println (sql);

dbcon.sqlUpdate(sql);
Avatar billede olly Nybegynder
05. december 2002 - 20:34 #26
Det ser jo fint ud... Men det jeg gerne ville have var det her:

    String ID  = BrugerID_IN.getText();
      String PS  = PasswordIN.getText();
      String FN  = FornavnIN.getText();
      String EN  = EfternavnIN.getText();
      String AD  = AdresseIN.getText();
      String AD2  = Adresse2IN.getText();
      String PN  = PostnummerIN.getText();
      String IN  = InitialerIN.getText();
      String TLF  = TlfIN.getText();
      String MTLF = MobilTlfIN.getText();
      String EM  = EmailIN.getText();
      String GID  = GruppeID_IN.getText();

      String SQLstring = "INSERT INTO MEDLEM VALUES( '" + ID + "', '" + PS + "', '" + FN + "', '" + EN + "', '" + IN + "', '" + AD + "', '" + AD2 + "', '" + PN + "', '" + TLF + "', '" + MTLF + "', '" + EM + "', '" + GID + "' )"

    System.out.println(SQLstring);

      dbcon.sqlUpdate( SQLstring );

---------

Bare for at få det output fra System.out.println

Så vi er 100% på den insert er okay
Avatar billede mfalck Praktikant
05. december 2002 - 20:35 #27
for nu at blande mig endnu en gang i ting som ikke vedkommer mig så overvej at skifte til Log4j ... det er så smart :-)
Avatar billede olly Nybegynder
05. december 2002 - 20:35 #28
mfalck>>

Den gang var du hurtigst :)

Og så vil jeg også anbefale e.printStackTrace
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:40 #29
får denne besked:

INSERT INTO MEDLEM VALUES( '', '', '', '', '', '', '', '', '', '', '', '' )

java.lang.NullPointerException
Avatar billede olly Nybegynder
05. december 2002 - 20:41 #30
Se det er jo ikke så godt... For du indsætter jo ikke noget så... Så der er vist fejl i din sql...
Avatar billede mfalck Praktikant
05. december 2002 - 20:42 #31
hmm .. ja eller også er variablene ikke blevet initialiseret med noget ...
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:42 #32
INSERT INTO MEDLEM VALUES( 'vagn2222', 'asldslda', 'dlsalkdsalk', 'kljdsaklsadkl', 'asj', 'kldkldkls', 'kljsdaklads', '7540', '98988989', '45545454', 'ljksadlk', '4' )

java.lang.NullPointerException
Avatar billede olly Nybegynder
05. december 2002 - 20:43 #33
Det er da ret underligt... Og du har noget i dine textfelter på din GUI?

De her burde jo hente det ud?

String ID  = BrugerID_IN.getText();
Avatar billede mfalck Praktikant
05. december 2002 - 20:43 #34
eller rettere - det er tomme strenge

prøv
String sql = "INSERT INTO MEDLEM VALUES( '" + ID + "', '" + PS + "', '" + FN + "', '" + EN + "', '" + IN + "', '" + AD + "', '" + AD2 + "', '" + PN + "', '" + TLF + "', '" + MTLF + "', '" + EM + "', '" + GID + "' )";

if (ID == null) System.out.println("Id er tom");
Avatar billede olly Nybegynder
05. december 2002 - 20:45 #35
Okay... Den skulle jo være god nok... Har du evt prøvet at fyre den af i et klient til db? Så er du 100% på den?
Avatar billede mfalck Praktikant
05. december 2002 - 20:45 #36
kan du ikke ændre din
System.out.println(e);

til:
e.printStackTrace(System.out);

det giver lidt mere at gå efter
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:47 #37
java.io.PrintStream@120bf2c

java.lang.NullPointerException
Avatar billede mfalck Praktikant
05. december 2002 - 20:49 #38
dang .. det gjorde det ikke.
Avatar billede olly Nybegynder
05. december 2002 - 20:51 #39
Den udskriver et objekt... Hvorfor det?
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:53 #40
øhhh....??
Avatar billede olly Nybegynder
05. december 2002 - 20:54 #41
mfalck>>

Skal det ikke være

System.out.println(e.printStackTrace());
Avatar billede mfalck Praktikant
05. december 2002 - 20:55 #42
jeg gætter på at Olly mener: java.io.PrintStream@120bf2c
Avatar billede mfalck Praktikant
05. december 2002 - 20:57 #43
bom bom -det kan man også godt - men printStackTrace kan tage en PrintStream el PrintWriter som argument ... virker lige godt (i al fald i min version af java :-) )
Avatar billede olly Nybegynder
05. december 2002 - 20:58 #44
Ja...

java.io.PrintStream@120bf2c <- Tyder på den udskriver et objekt af java.io.PrintStream, da der her er tale om en memory referance der udskrives
Avatar billede mfalck Praktikant
05. december 2002 - 20:59 #45
public void sqlUpdate(String sql) {
    try {
    if (con.isClosed) System.out.print("forbindelsen er væk");
    Statement statement = con.createStatement();
    statement.executeUpdate(" " + sql + " ");
    } catch ( SQLException e ) {
      System.out.println( e );
  }
Avatar billede olly Nybegynder
05. december 2002 - 20:59 #46
mfalck>>

Tof lige hovedet ned i javadoc... Du har ret... Er bare vandt til den anden :)
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 20:59 #47
Skal jeg prøve at smide hele klasse ud til jer??
Avatar billede mfalck Praktikant
05. december 2002 - 20:59 #48
ja bare gør det
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 21:00 #49
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.border.*;
import java.sql.*;

class opretMedlem extends JFrame implements ActionListener {
  private GridBagLayout layout;
  private JPanel panel, panel2, panel3;
  private JButton Anuller, OK;
  private JTextField BrugerID_IN, PasswordIN, FornavnIN, EfternavnIN, InitialerIN, AdresseIN, Adresse2IN , PostnummerIN , TlfIN, MobilTlfIN, EmailIN, GruppeID_IN;
  private DatabaseCon dbcon;
 
  public opretMedlem (String title) {
    super( title );
   
    layout = new GridBagLayout();
    panel = new JPanel();
    panel.setLayout ( layout );
   
    GridBagConstraints con;
   
    JLabel BrugerID = new JLabel( "BrugerID" );
    con = createGBC( 0, 0, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(15, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add( BrugerID, con );
   
    BrugerID_IN = new JTextField(3);
    con = createGBC( 1, 0, 1, 1 );
    con.anchor = GridBagConstraints.WEST;
//    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(15, 5, 2, 15);
    con.weightx = 1;
    con.weighty = 1;
    add( BrugerID_IN, con );
   
    JLabel Password = new JLabel( "Password" );
    con = createGBC( 0, 1, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add( Password, con );
   
    PasswordIN = new JTextField();
    con = createGBC( 1, 1, 1, 1 );
    con.anchor = GridBagConstraints.WEST;
    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(2, 5, 2, 15);
    con.weightx = 1;
    con.weighty = 1;
    add( PasswordIN, con );
   
       
    JLabel Fornavn = new JLabel( "Fornavn" );
    con = createGBC( 0, 2, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add( Fornavn, con );
       
    FornavnIN = new JTextField();
    con = createGBC( 1, 2, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 2, 15);
    con.weightx = 1;
    con.weighty = 1;
    add( FornavnIN, con );
   
    JLabel Efternavn = new JLabel( "Efternavn" );
    con = createGBC( 0, 3, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add( Efternavn, con );
   
    EfternavnIN = new JTextField();
    con = createGBC( 1, 3, 2, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 2, 15);
    con.weightx = 1;
    con.weighty = 1;
    add( EfternavnIN, con );
   
       
    JLabel Adresse = new JLabel( "Adresse" );
    con = createGBC( 0, 4, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add( Adresse, con );
       
    AdresseIN = new JTextField();
    con = createGBC( 1, 4, 2, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 2, 15);
    con.weightx = 1;
    con.weighty = 1;
    add( AdresseIN, con );
   
    JLabel Adresse2 = new JLabel( "Adresse2" );
    con = createGBC( 0, 5, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add( Adresse2, con );
   
    Adresse2IN = new JTextField();
    con = createGBC( 1, 5, 2, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 2, 15);
    con.weightx = 1;
    con.weighty = 1;
    add( Adresse2IN, con );

    JLabel Postnummer = new JLabel( "Postnummer" );
    con = createGBC( 0, 6, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 15, 5);
    con.weightx = 1;
    con.weighty = 1;
    add( Postnummer, con );
   
    PostnummerIN = new JTextField(3);
    con = createGBC( 1, 6, 1, 1 );
    con.anchor = GridBagConstraints.WEST;
//    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(2, 5, 15, 95);
    con.weightx = 1;
    con.weighty = 1;
    add( PostnummerIN, con );
   
    panel.setBorder(
    new CompoundBorder(
    new EmptyBorder( 0, 0, 0, 0 ),
      new CompoundBorder(
      new TitledBorder(
      new EtchedBorder( EtchedBorder.LOWERED ), ""),
      new EmptyBorder( 0, 0, 0, 0 ))));
     
    layout = new GridBagLayout();
    panel2 = new JPanel();
    panel2.setLayout( layout ); 
   
    JLabel Initialer = new JLabel( "Initialer" );
    con = createGBC( 3, 0, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(15, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add2( Initialer, con );
   
    InitialerIN = new JTextField();
    con = createGBC( 4, 0, 1, 1 );
    con.anchor = GridBagConstraints.EAST;
    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(15, 5, 2, 100);
    con.weightx = 1;
    con.weighty = 1;
    add2( InitialerIN, con );
   
       
    JLabel Tlf = new JLabel( "Tlf" );
    con = createGBC( 3, 1, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add2( Tlf, con );
       
    TlfIN = new JTextField();
    con = createGBC( 4, 1, 1, 1 );
    con.anchor = GridBagConstraints.EAST;
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 2, 35);
    con.weightx = 1;
    con.weighty = 1;
    add2( TlfIN, con );
   
    JLabel MobilTlf = new JLabel( "MobilTlf" );
    con = createGBC( 3, 2, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add2( MobilTlf, con );
   
    MobilTlfIN = new JTextField();
    con = createGBC( 4, 2, 1, 1 );
    con.anchor = GridBagConstraints.EAST;
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 2, 35);
    con.weightx = 1;
    con.weighty = 1;
    add2( MobilTlfIN, con );

    JLabel Email = new JLabel( "Email" );
    con = createGBC( 3, 3, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 2, 5);
    con.weightx = 1;
    con.weighty = 1;
    add2( Email, con );
   
    EmailIN = new JTextField();
    con = createGBC( 4, 3, 2, 1 );
    con.anchor = GridBagConstraints.EAST;
    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(2, 5, 2, 35);
    con.weightx = 1;
    con.weighty = 1;
    add2( EmailIN, con );
       
    JLabel GruppeID = new JLabel( "GruppeID" );
    con = createGBC( 3, 4, 1, 1 );
    con.anchor = GridBagConstraints.CENTER;
    con.insets = new Insets(2, 15, 15, 5);
    con.weightx = 1;
    con.weighty = 1;
    add2( GruppeID, con );
       
    GruppeID_IN = new JTextField(3);
    con = createGBC( 4, 4, 1, 1 );
    con.anchor = GridBagConstraints.WEST;
//    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 15, 15);
    con.weightx = 1;
    con.weighty = 1;
    add2( GruppeID_IN, con );
   
    panel2.setBorder(
    new CompoundBorder(
    new EmptyBorder( 0, 0, 0, 0 ),
      new CompoundBorder(
      new TitledBorder(
      new EtchedBorder( EtchedBorder.LOWERED ), ""),
      new EmptyBorder( 0, 0, 0, 0 ))));
   
    layout = new GridBagLayout();
    panel3 = new JPanel();
    panel3.setLayout( layout ); 
   
     
    OK = new JButton("  OK  ");
    con = createGBC(1, 6, 1, 1);
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 15, 2, 5);
    OK.addActionListener(this);
    con.weightx = 1;
    add3( OK, con );
   
    Anuller = new JButton("ANULLER");
    con = createGBC(4, 6, 1, 1);
    Anuller.addActionListener(this);
    con.fill = GridBagConstraints.HORIZONTAL;   
    con.insets = new Insets(2, 5, 2, 35);
    con.weightx = 1;
    add3(Anuller, con );
 
    panel3.setBorder(
    new CompoundBorder(
    new EmptyBorder( 0, 0, 0, 0 ),
      new CompoundBorder(
      new TitledBorder(
      new EtchedBorder( EtchedBorder.LOWERED ), ""),
      new EmptyBorder( 0, 0, 0, 0 ))));
 
   
    getContentPane().setLayout( new FlowLayout() );
    getContentPane().add(panel);
    getContentPane().add(panel2);
    getContentPane().add(panel3);
   
    getContentPane().setLayout(new GridBagLayout(  ));
   
    con = createGBC(0, 0, 1, 1);
    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(5, 5, 2, 5);   
    getContentPane().add(panel , con);
   
   
    con = createGBC(0, 1, 1, 1);
    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(3, 5, 3, 5);   
    getContentPane().add(panel2 , con);
   
   
    con = createGBC(0, 2, 1, 1);
    con.fill = GridBagConstraints.HORIZONTAL;
    con.insets = new Insets(2, 5, 5, 5);   
    getContentPane().add(panel3 , con);
   
   
   
      pack();   
//    setSize( 250, 500 ); 
    setVisible( true );
   
   
  }
  private GridBagConstraints createGBC( int x, int y, int width, int height ) {
    GridBagConstraints gbc = new GridBagConstraints();
   
    gbc.gridx = x;
    gbc.gridy = y;
    gbc.gridwidth = width;
    gbc.gridheight = height;
   
    return gbc;
  }
  private void add(JComponent component, GridBagConstraints gbc) {
    layout.setConstraints( component, gbc );
    panel.add( component );
  }
 
  private void add2(JComponent component, GridBagConstraints gbc) {
    layout.setConstraints( component, gbc );
    panel2.add( component );
  }
 
 
  private void add3(JComponent component, GridBagConstraints gbc) {
    layout.setConstraints( component, gbc );
    panel3.add( component );
  }
 
 
  class WindowHandler extends WindowAdapter {
    public void WindowClosing( WindowEvent e ) {
      dispose();
      System.exit(0);
    }
  }
 
  public void actionPerformed( ActionEvent e ) {
  Object source = e.getSource();
   
    if ( source == Anuller ) {
      dispose();
      System.exit(0);
    }
    else if ( source == OK ) {
     
    try
    {
      String ID  = BrugerID_IN.getText();
      String PS  = PasswordIN.getText();
      String FN  = FornavnIN.getText();
      String EN  = EfternavnIN.getText();
      String AD  = AdresseIN.getText();
      String AD2  = Adresse2IN.getText();
      String PN  = PostnummerIN.getText();
      String IN  = InitialerIN.getText();
      String TLF  = TlfIN.getText();
      String MTLF = MobilTlfIN.getText();
      String EM  = EmailIN.getText();
      String GID  = GruppeID_IN.getText();

    String sql = "INSERT INTO MEDLEM VALUES( '" + ID + "', '" + PS + "', '" + FN + "', '" + EN + "', '" + IN + "', '" + AD + "', '" + AD2 + "', '" + PN + "', '" + TLF + "', '" + MTLF + "', '" + EM + "', '" + GID + "' )";

//    if (ID == null) System.out.println("Id er tom");

      dbcon.sqlUpdate( sql );
    }
    catch(Exception f)
    {
      f.printStackTrace();
//      System.out.println(f.printStackTrace());
    }
  }
       
  }
 
 
}
Avatar billede magoo20000 Nybegynder
05. december 2002 - 21:04 #50
Eller:
  catch (Exception e){
            e.printStackTrace(System.out);
        }
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 21:08 #51
java.lang.NullPointerExceptionat
opretMedlem.actionPerformed(opretMedlem.java:374)

Det er denne linie:
dbcon.sqlUpdate( sql );
Avatar billede olly Nybegynder
05. december 2002 - 21:10 #52
Har du prøvet mfalck' foreslag her?

public void sqlUpdate(String sql) {
    try {
    if (con.isClosed) System.out.print("forbindelsen er væk");
    Statement statement = con.createStatement();
    statement.executeUpdate(" " + sql + " ");
    } catch ( SQLException e ) {
      System.out.println( e );
  }
Avatar billede mfalck Praktikant
05. december 2002 - 21:10 #53
prøvede du den her ... det er lidt at gribe efter strå .. ellers må du sætte System.out.println("1"); ind for hver linie og se hvor det går galt i sqlUpdate.

public void sqlUpdate(String sql) {
    try {
    if (con.isClosed) System.out.print("forbindelsen er væk");
    Statement statement = con.createStatement();
    statement.executeUpdate(" " + sql + " ");
    } catch ( SQLException e ) {
      System.out.println( e );
  }
Avatar billede mfalck Praktikant
05. december 2002 - 21:11 #54
>olly ... hehe
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 21:12 #55
Jeg har prøvet den men jeg synes ikke der sker den helt store ændring
Avatar billede mfalck Praktikant
05. december 2002 - 21:13 #56
ok - så er forbindelsen til db ok .. prøv at sætte debug-sætninger ind for hver linie.
Avatar billede olly Nybegynder
05. december 2002 - 21:15 #57
Tror jeg har fundet den!

private DatabaseCon dbcon;

Skal laves til

private DatabaseCon dbcon = new DatabaseCon();

i toppen af opretMedlem

Du får ikke initialiceret dit objekt!
Avatar billede dk_zerocool Nybegynder
05. december 2002 - 21:17 #58
Det var lige det som manglede...nu virker hele skidtet sgu...mange tak for hjælpen, jeg deler pointene. Fortsat god aften.
Avatar billede olly Nybegynder
05. december 2002 - 21:19 #59
Fair og tak for point... mfalck har du msn eller icq? Hvis jeg kunne få en kort intro til Log4j en dag.. Ser spænende ud!
Avatar billede mfalck Praktikant
05. december 2002 - 21:21 #60
jeps hvad vil du helst have ... jeg er ikke super-ekspert - vi bruger det på mit arbejde, så der er andre som har sat det op.
Avatar billede olly Nybegynder
05. december 2002 - 21:22 #61
MSN... Hader ICQ reklamer..
Avatar billede mfalck Praktikant
05. december 2002 - 21:25 #62
hmm .. har du en mail-adresse evt .. gider ikke at have 1000 folk på min messenger
Avatar billede olly Nybegynder
05. december 2002 - 21:27 #63
Jo... send din mail til olly@oncable.dk... Så adder jeg dig... (Er ikke min msn mail)
Avatar billede mfalck Praktikant
05. december 2002 - 21:31 #64
det mangler lidt på exp.dk .. at man kan sende private beskeder .. jeg sender en mail
Avatar billede olly Nybegynder
05. december 2002 - 21:32 #65
Helt klart... Ville også ønske man kunne sende en privat besked... For jeg har det på samme måde med at give mails ud til msn og uin til icq...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester