Fehlerabfrage

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi

ich habe folgendes Problem:

ich möchte eine Datensatz aus eine Datenbank löschen, wenn ich die ID des Datensatzes in ein textfeld schreibe und dies mit einem button bestätige.

das geht auch soweit, nur die Fehlerabfrage passt irgendwie nicht. Denn er sagt mir auch Artikel gelöscht, wenn ich ins Textfeld nichts schreibe oder wenn die ID garnicht vorhanden ist.

Was muss ich ändern?

Danke



Code:
 	class ArtikelLoeschen implements ActionListener {
              			              public void actionPerformed(ActionEvent e) {
              			            	loeschen(e);
              			              }
              			      	}
              			      	  
              			               void loeschen(ActionEvent e) {
  	   
              			               			if (e.getActionCommand() == ArtikelLoeschen.getLabel()) {
              			                   			{  
              			               			
              			                   				 getID = ID1.getText();
              			               				
              			               			}
              			                   			
              			                           			if (e.getActionCommand() == ArtikelLoeschen.getLabel()) {
              			                               			{  
              			                           			
              			                               				WarengruppennummerText.setText("");
              			                               				ArtikelbeschreibungText.setText("");
              			                               				ID1.setText("");
              			                               				Preis_in_€Text.setText("");
              			                               				ArtikelnummerText.setText("");
              			                               				MwStCodeText.setText("");
              			                               		
              			                               	            			                               				
              			                           			}
              		 
              			              	if (e.getActionCommand() == ArtikelLoeschen.getLabel()) {
              			      			{
                      			      				

              			      				// Laden des Treibers per Klassen-Loader
              			      				try {
              			      					Class.forName("com.mysql.jdbc.Driver");

              			      				} catch (ClassNotFoundException f) {

              			      					JOptionPane.showMessageDialog(controllingFrame, "Kann den Treiber nicht laden!");
              			      				}

              			      				Connection con = null;
              			      				// dantenbankname
              			      				String db = "jdbc:mysql://localhost/kassensystem";
              			      				String user = "root";
              			      				String pass = "";

              			      				try {
              			      					con = DriverManager.getConnection(db, user, pass);

              			      				} catch (SQLException f) {

              			      					JOptionPane.showMessageDialog(controllingFrame, "Verbindung fehlgeschlagen!");
              			      				}

              			      				Statement state = null;

              			      				try {
              			      					state = con.createStatement();

              			      				} catch (SQLException f) {

              			      					JOptionPane.showMessageDialog(controllingFrame, "Konnte kein Statement erzeugen");
              			      				}

              			      					String sql = "delete from Artikel where ID = '"+ getID +"'";
                      			   
              			      				try {

              			      					state.executeUpdate(sql);
              			      					JOptionPane.showMessageDialog(controllingFrame, "Artikel gelöscht "); 
              			      					// state.close();
              			      					           			      					
              			      										
              			      					}

              			      				 catch (SQLException f) {

              			      					JOptionPane.showMessageDialog(controllingFrame, "Konnte Artikel nicht löschen");	
              			                  			      			
              			      				}}}}}}
 

JAVAn00b

Bekanntes Mitglied
du mußt eine IF abfrage machen.
Code:
if(getID < 0){
   try {

                                            state.executeUpdate(sql);
                                            JOptionPane.showMessageDialog(controllingFrame, "Artikel gelöscht ");
                                            // state.close();
                                                                                     
                                                           
                                            }

                                          catch (SQLException f) {

                                            JOptionPane.showMessageDialog(controllingFrame, "Konnte Artikel nicht löschen");   
                                                                 
                                         }
}
else{
JOptionPane.showMessageDialog(controllingFrame, "Bitte geben Sie eine ID ein.", JOptionPane.ERROR_MESSAGE);
}

so müßte es klappen.

er führt diese Zeile:
Code:
catch (SQLException f) {

                                            JOptionPane.showMessageDialog(controllingFrame, "Konnte Artikel nicht löschen");   
                                                                 
                                         }

nur aus wenn es ein fehler gibt.
 
G

Gast

Gast
also wenn ich das richtig sehe, dann liegt das daran, dass
Code:
state.executeUpdate(sql);
einfach nicht schief geht. es werden halt einfach 0 Zeilen gelöscht. Aber es wird keine Exception geworfen, deshalb wird auch immer angezeigt, dass gelöscht wurde.

schau dir mal die api zu executeUpdate an.
Api

executeUpdate liefert ein int zurück, welches besagt wieviele Zeilen geupdatet wurden. verabeite doch diesen rückgabewert
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben