Avatar billede flimmerdreng Nybegynder
15. juni 2005 - 17:01 Der er 9 kommentarer og
1 løsning

sidste hånd på værket: indtastningsfejl

Som de fleste nok har lagt mærke til, har jeg har jeg oprettet en del tråde i den sidste tid, men nu skal det være slut foreløbig(tror jeg). Jeg mangler en måde at fortælle i en if-sætning at det jeg har skrevet i mit tekstfelt ikke passer overens med mine data i min database. Har fået den til ikke at hente oplysninger ved tomt felt, men mangler nu det sidste altså ved forkert cprnummer

Her er  mine klasser for sidste gang
Appletten

import java.util.*; 
import java.io.*; 
import java.applet.Applet; 
import java.awt.*; 
import java.awt.event.*;   
import java.sql.*;

public class Brugerflade extends Applet  implements ActionListener 
{                                                               

    public String username = "";
    public String password = ""; 
    boolean userValid = false;
    Button KnapDagplan, KnapFamilie, KnapAftaler, KnapMedicin, KnapJournal, KnapAndet, KnapOK, KnapOKCPR, KnapDoktor, KnapAndet2, KnapJournal2, KnapDagplan2, KnapAftaler2;
    TextArea SkriveFlade;
    TextField CPR;
    Label Forfatter, Til;
    String var1, var2, var3, var4;

    Database data ;   
   
    Aftaler aft = new Aftaler();
    Journal ajour = new Journal();
    Dagplan dag = new Dagplan();
    Andet and = new Andet();




    public void init() 

   
    {  setLayout(new FlowLayout());
      while (!userValid) login();
      data = new Database();

       
        CPR = new TextField("");
        CPR.setColumns(12);
        CPR.setBackground(Color.green);
        KnapOKCPR = new Button("CPR OK");
        KnapOKCPR.setBackground(Color.green);
        KnapDagplan = new Button("Dagplan");
        KnapDagplan.setBackground(Color.blue);
        KnapDagplan2 = new Button("Opd. Dagplan");
        KnapDagplan2.setBackground(Color.blue);
        KnapAftaler = new Button("Aftaler");
        KnapAftaler.setBackground(Color.yellow);
        KnapAftaler2 = new Button("Opd. Aftaler");
        KnapAftaler2.setBackground(Color.yellow);
        KnapJournal = new Button("Patient-Journal");
        KnapJournal.setBackground(Color.red);
        KnapJournal2 = new Button("Opd. Journal");
        KnapJournal2.setBackground(Color.red);
        KnapAndet = new Button("andet");
        KnapAndet.setBackground(Color.ORANGE);
        KnapAndet2 = new Button("Opd. Andet");
        KnapAndet2.setBackground(Color.ORANGE);
        KnapFamilie = new Button("Pårørende");
        KnapFamilie.setBackground(Color.magenta);
        KnapDoktor = new Button("Egen læge");
        KnapDoktor.setBackground(Color.cyan);
        KnapMedicin = new Button("Medicin Cardex");
        KnapMedicin.setBackground(Color.lightGray);
         
       
        SkriveFlade = new TextArea(25,50);
       
        Forfatter = new Label("Flemming Steenstrup Jakobsen");   
       

       
       
        add(CPR);
        add(KnapOKCPR);       
        add(KnapFamilie);
        add(KnapDoktor);
        add(KnapMedicin);
        add(KnapDagplan);
        add(KnapDagplan2);     
        add(KnapAftaler);
        add(KnapAftaler2);
        add(KnapJournal);
        add(KnapJournal2);
        add(KnapAndet);
        add(KnapAndet2);               
        add(Forfatter);
        add(SkriveFlade);
       
        KnapDagplan.addActionListener(this);
        KnapDagplan2.addActionListener(this);
        KnapOKCPR.addActionListener(this);
        KnapFamilie.addActionListener(this);
        KnapAftaler.addActionListener(this);
        KnapAftaler2.addActionListener(this);
        KnapMedicin.addActionListener(this);
        KnapJournal.addActionListener(this);
        KnapAndet.addActionListener(this);
        KnapAndet2.addActionListener(this);
        KnapDoktor.addActionListener(this);
        KnapJournal2.addActionListener(this);
        KnapDagplan2.addActionListener(this);
       
    } 
 
  public void login() {
  MyLogin login = new MyLogin (new Frame(""));
  requestFocus();
  if (login.id) {
    username = login.username.getText();
    password = login.password.getText();
    userValid = validateUser(username , password);
    System.out.println(userValid?"valide":"invalide");
    }
  login.dispose();
  }
 
  private boolean validateUser(String usr, String pwd) {
    // here you will code some logic to validate the username
    // password... for testing purpose :
    //                username = java  password = avaj
    return (usr.equals("java") && pwd.equals("avaj"));
    }

  public void actionPerformed(ActionEvent e)
  {
                 
           
        if (e.getSource() == KnapOKCPR)
       
          { try
              {
                  String tekst = "";
                  tekst = data.HentPat(CPR.getText());
                if (CPR.getText().equals(""))
                {
                  SkriveFlade.setText("Indtastningsfejl.. Patient findes ikke");
                  }
                else
                {
                  SkriveFlade.setText(null);
                  SkriveFlade.setText(tekst);
                 
                  }
           
              }
            catch (Exception fejl1)
            {
              SkriveFlade.setText("Indtastningsfejl.. Patienten findes ikke");
            }
             
           
        }
           
     
        if (e.getSource() == KnapDagplan)
       
          { 
              try 
              { 
                 
                  SkriveFlade.setText(dag.hentDagplan());
                 
                }
              catch (Exception fejl2)
              {  SkriveFlade.setText("Data ikke tilgængelig " + fejl2); 
                }
            }
           
            if (e.getSource() == KnapDagplan2)
       
          { 
              try 
              { 
                  var1 = (SkriveFlade.getText());
                  dag.gemDagplan(var1);
                 
                }
              catch (Exception fejl3)
              {  SkriveFlade.setText("Data kan ikke gemmes " + fejl3); 
                }
            } 
          if (e.getSource() == KnapFamilie)
          {
              try
                {
                  String tekst = "";
                  tekst = data.HentFam(CPR.getText());
                  SkriveFlade.setText(null);
                  SkriveFlade.setText(tekst);
                 
                }
             

                  catch (Exception fejl4)
                {
                  SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl4);
                }
      }
      if (e.getSource() == KnapAftaler)
       
          { 
              try 
              { 
                 
                  SkriveFlade.setText(aft.hentAftaler());
                }
              catch (Exception fejl5)
              {
                  SkriveFlade.setText("Data ikke tilgængelig " + fejl5);
                }
            }
           
            if (e.getSource() == KnapAftaler2)
       
          { 
              try 
              { 
                  var2 = (SkriveFlade.getText());
                  aft.gemAftaler(var2);   
                 
                }
              catch (Exception fejl6)
              {
                  SkriveFlade.setText("Data kan ikke gemmes " + fejl6);
                }
            } 
      if (e.getSource() == KnapMedicin)
       
          { 
              try 
              { 
                  String tekst = "";
                  tekst = data.HentMed(CPR.getText());
                  SkriveFlade.setText(null);
                  SkriveFlade.setText(tekst);   
                }
              catch (Exception fejl7)
              {
                  SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl7);
                }
            }
      if (e.getSource() == KnapJournal)
       
          { 
              try 
              { 
                  SkriveFlade.setText(ajour.hentJournal());
                }
              catch (Exception fejl8)
              {
                  SkriveFlade.setText("Data ikke tilgængelig " + fejl8);
                }
        } 
           
            if (e.getSource() == KnapJournal2)
       
          { 
              try 
              { 
                    var3 = (SkriveFlade.getText());
                    ajour.gemJournal(var3);     
                 
                }
              catch (Exception fejl9)
              {
                  SkriveFlade.setText("Data kan ikke gemmes " + fejl9);
                }
        } 
           
      if (e.getSource() == KnapAndet)
       
          { 
              try 
              { 

                  SkriveFlade.setText(and.hentAndet());
                 
                }
              catch (Exception fejl10)
              {  SkriveFlade.setText("Data ikke tilgængelig " + fejl10); 
                }
            }
           
            if (e.getSource() == KnapAndet2)
       
          { 
              try 
              { 
                    var4 = (SkriveFlade.getText());
                    and.gemAndet(var4);   
                   
                 
                }
              catch (Exception fejl11)
              {  SkriveFlade.setText("Data kan ikke gemmes " + fejl11); 
                }
            }
      if (e.getSource() == KnapDoktor)
       
          { 
              try 
              { 
                  String tekst = "";
                  tekst = data.HentDok(CPR.getText());
                  SkriveFlade.setText(null);
                  SkriveFlade.setText(tekst);
                 
                 
                }
              catch (Exception fejl12)
              {  SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl12); 
                }
            } 
               
}
}

Og min database klasse:

import java.util.*;
import java.sql.*;
import java.io.*;

public class Database
{
  java.sql.Connection forb;
  java.sql.ResultSet rs;
  java.sql.Statement stmt;
  String a = "";
  String b = "";
  String c = "";
  String d = "";
 
  Brugerflade tekst = new Brugerflade();
public void forbind() 
{
try {

   
String url = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\Documents and Settings\\Flemming\\Dokumenter\\PATIENTER.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
forb = DriverManager.getConnection(url);
stmt = forb.createStatement();

}

catch (Exception err) {
err.printStackTrace();
}
}

public String HentPat(String cprnummer) throws SQLException
{       
        forbind();
//        int cprnum = Integer.parseInt(cprnummer);
        rs = stmt.executeQuery("SELECT * FROM patienten WHERE CPRnr = '"+cprnummer+"'");
        a = "";
          while (rs.next())
          {  String cpr = rs.getString("CPRnr"); 
              String pnavn = rs.getString("PatNavn");
              String padresse = rs.getString("PatAdresse");
              int ppostnr = rs.getInt("PatPostnr");
              String pby = rs.getString("PatCity");
              int ptlf = rs.getInt("PatTlfnr");
              a = a+"\n"+cpr+"\n"+pnavn+"\n"+padresse+"\n"+ppostnr+"\n"+pby+"\n"+ptlf;
             
          }
         
         
           
           
            return a;
           
             
 
}
    public String HentFam(String cprnummer) throws SQLException
{       
        forbind();
        rs = stmt.executeQuery("SELECT * FROM familie WHERE CPRnr = '"+cprnummer+"'");
        b = "";
             
          while (rs.next())
          {  String cpr = rs.getString("CPRnr");
              String fnavn = rs.getString("Famnavn1");
              String fadresse = rs.getString("Famadresse1");
              int fpostnr = rs.getInt("Fampostnr1");
              String fby = rs.getString("Famcity1");
              int ftlf = rs.getInt("Famfasttlf1");
              int fmob = rs.getInt("Fammobil1");
              String fnavn2 = rs.getString("Famnavn2");
              String fadresse2 = rs.getString("Famadresse2");
              int fpostnr2 = rs.getInt("Fampostnr2");
              String fby2 = rs.getString("Famcity2");
              int ftlf2 = rs.getInt("Famfasttlf2");
              int fmob2 = rs.getInt("Fammobil2");
              b = b+"\n"+cpr+"\n"+fnavn+"\n"+fadresse+"\n"+fpostnr+"\n"+fby+"\n"+ftlf+"\n"+fmob+"\n"+fnavn2+"\n"+fadresse2+"\n"+fpostnr2+"\n"+fby2+"\n"+ftlf2+"\n"+fmob2;
         
          }
          return b;
     
             
           
}         
    public String HentDok(String cprnummer) throws SQLException

       
        rs = stmt.executeQuery("SELECT * FROM doktor WHERE CPRnr = '"+cprnummer+"'");
        c = "";     
          while (rs.next())
          {  String cpr = rs.getString("CPRnr"); 
              String dnavn = rs.getString("Patdok");
              String dadresse = rs.getString("Patdokadresse");
              int dpostnr = rs.getInt("Patdokpostnr");
              String dby = rs.getString("Patdokcity");
              int dtlf = rs.getInt("Patdoktlf");
              c = c+cpr+"\n"+dnavn+"\n"+dadresse+"\n"+dpostnr+"\n"+dby+"\n"+dtlf;
             
          }


return c;         
}

    public String HentMed(String cprnummer) throws SQLException

       
        ResultSet rs = stmt.executeQuery("SELECT * FROM medicin WHERE CPRnr = '"+cprnummer+"'");
        d = "";     
          while (rs.next())
          {  String med1 = rs.getString("Medicin1"); 
              String dgl1 = rs.getString("Meddgl1");
              String med2 = rs.getString("Medicin2");
              String dgl2 = rs.getString("Meddgl2");
              String med3 = rs.getString("Medicin3");
              String dgl3 = rs.getString("Meddgl3");
              String med4 = rs.getString("Medicin4");
              String dgl4 = rs.getString("Meddgl4");
              String med5 = rs.getString("Medicin5");
              String dgl5 = rs.getString("Meddgl5");
              String med6 = rs.getString("Medicin6");
              String dgl6 = rs.getString("Meddgl6");
              int dosis = rs.getInt("Meddato");
              d = d+med1+"\n"+dgl1+"\n"+med2+"\n"+dgl2+"\n"+med3+"\n"+dgl3+"\n"+med4+"\n"+dgl4+"\n"+med5+"\n"+dgl5+"\n"+med6+"\n"+dgl6+"\n"+dosis;
             
          }

         
return d;         
}
         
}       
Har kun prøvet med knappen CPRok som udgangspunkt, så skulle resten være ctrl+c
Avatar billede kalp Novice
15. juni 2005 - 18:46 #1
hvis det er i hentPat metoden


public String HentPat(String cprnummer) throws SQLException
{        String cpr;
        forbind();
//        int cprnum = Integer.parseInt(cprnummer);
        rs = stmt.executeQuery("SELECT * FROM patienten WHERE CPRnr = '"+cprnummer+"'");
        a = "";
          while (rs.next())
          { cpr = rs.getString("CPRnr"); 
              String pnavn = rs.getString("PatNavn");
              String padresse = rs.getString("PatAdresse");
              int ppostnr = rs.getInt("PatPostnr");
              String pby = rs.getString("PatCity");
              int ptlf = rs.getInt("PatTlfnr");
              a = a+"\n"+cpr+"\n"+pnavn+"\n"+padresse+"\n"+ppostnr+"\n"+pby+"\n"+ptlf;
             
          }
         
         
            if(cprnummer.equalsIgnoreCase(cpr))       
            return a;
else
return "findes ikke";

           
             
 
}

denne returnere teksten findes ikke hvis cpr nummeret ikke findes...

men faktisk er det lidt svært med den opbygning du har valgt at gøre det pænt
Avatar billede flimmerdreng Nybegynder
15. juni 2005 - 19:11 #2
kan jeg godt forestille mig, men det er kun mit andet program i forbindelse med min skole
Avatar billede simonvalter Praktikant
15. juni 2005 - 19:14 #3
Lige en kommentar som ikke har noget direkte med dit spørgsmål at gøre men du måske aligevel kan bruge til noget:
SELECT * FROM... bør aldrig benyttes.
du bør altid bruge precis de colonner du vil have fat i.
select column1, column2,.. FROM

Du skal som udvikler være klar over at det ikke er dine data... hvis nu f.eks at en anden udvikler lige pludselig begynder at gemme billeder i en blob i samme tabel så går det ud over performance, netværk osv alle de steder hvor du bruger SELECT *

Du kan læse mere om det her
http://www.theserverside.com/articles/article.tss?l=JDBCPerformance_PartII

Jeg ser heller ingen steder hvor du lukker forbindelsen til resultset,statement,connection.. du har muligvis ikke posted den kode her men du skal være opmærksom på at det er MEGET vigtigt at gøre det.
Du kan læse mere om det her
http://www.javalobby.org/java/forums/t18930.html

En sidste note er at du måske skal overveje at bruge objekter da java er objektorienteret.. så istedet for at retunere en fast String med en doktor, patient så retuner et objekt Doktor som indeholder data som du kan bruge rundt omkring i programmet.. hvis du nu vil have en string der viser de data kunne du sætte det på toString metoden på objektet.... du kan selvfølgelig have dine grunde.... men nu er det ihvertfald sagt :)
Avatar billede arne_v Ekspert
15. juni 2005 - 19:36 #4
jeg har forsøgt at vise lidt her http://www.eksperten.dk/spm/625311

men ingen interesse
Avatar billede flimmerdreng Nybegynder
15. juni 2005 - 19:36 #5
Jeg kan ikke få det til at fungere. Variablen cpr er "måske" ikke initialiseret. Kan det være fordi den er lokal og ikke global
Avatar billede flimmerdreng Nybegynder
15. juni 2005 - 19:41 #6
jo det har interesse simonvalter og arne v men føler ikke rigtig at jeg har den fornødne erfaring desværre. Det er lidt uoverskueligt for mig, og det er jo ikke jeres fejl. kalp har gjort det på en rimelig overskuelig måde. Men simonvalter. Det med rs.close jeg kan ikke få det til at fungere ordentligt. Jeg har prøvet men det virker som om den går i hårdknude desværre. Det med columns er jeg helt med på, jeg er bare doven anlagt. det med toString metoden. Hvordan fungerer den. arnev bruger den ogsåmen jeg har aldrig brugt den
Avatar billede kalp Novice
15. juni 2005 - 20:31 #7
public String HentPat(String cprnummer) throws SQLException
{        String cpr = "";
        forbind();
//        int cprnum = Integer.parseInt(cprnummer);
        rs = stmt.executeQuery("SELECT * FROM patienten WHERE CPRnr = '"+cprnummer+"'");
        a = "";
          while (rs.next())
          { cpr = rs.getString("CPRnr"); 
              String pnavn = rs.getString("PatNavn");
              String padresse = rs.getString("PatAdresse");
              int ppostnr = rs.getInt("PatPostnr");
              String pby = rs.getString("PatCity");
              int ptlf = rs.getInt("PatTlfnr");
              a = a+"\n"+cpr+"\n"+pnavn+"\n"+padresse+"\n"+ppostnr+"\n"+pby+"\n"+ptlf;
             
          }
         
         
            if(cprnummer.equalsIgnoreCase(cpr))       
            return a;
else
return "findes ikke";

           
             
 
}
Avatar billede flimmerdreng Nybegynder
15. juni 2005 - 20:49 #8
Det funker ikke, så jeg brugte bare den gamle metode jeg havde i forvejen. Tak for hjælpen alle sammen. Er der en som skal have point eller i deler lige over
Avatar billede kalp Novice
15. juni 2005 - 22:59 #9
tag selv point:)
Avatar billede flimmerdreng Nybegynder
10. maj 2006 - 19:15 #10
Ja
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