2016-08-21 5 views
2

JTableから選択した行をデータベースから削除したい私のJavaプログラムがデータベースに接続されていることを確認しましたが、ちょうど望んだ列に影響を与えたり触れたりすることなくデータベース全体から行全体を削除する方法が混乱しています。 JTableのデータベース内の行を削除する

で選択した行を削除するには、私のデータベースには、8列フルネーム、父親の名前、父CNIC、生年月日、階級、住所、市道

int x = MyTable.getSelectedRow(); 
String b = String.valueOf(MyTable.getValueAt(x, 1)); 

try { 
    Connection con; 
    Statement stmt; 


    Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
    con =DriverManager.getConnection("jdbc:ucanaccess://C://Users//abdul//Desktop/StudentDatabase.accdb"); 


    stmt = con.createStatement(); 

    stmt.executeUpdate("delete from StudentDatabase where row = 'x'"); 


    stmt.close(); 
    con.close(); 
    } 
    catch(Exception e) { 
    e.printStackTrace(); 
} 

答えて

3
stmt.executeUpdate("delete from StudentDatabase where row = 'x'"); 

このSQLクエリで構成されてい間違っている。たとえば、あなたは、データベースに CustomerID CustomerName ContactName 1 Mike +248439533 2 Bob +345353535

を次の表があり、「マイク」の行を削除したい場合、あなたは

delete from StudentDatabase where CustomerName = 'Mike'としてクエリを記述する必要があります。

お得意先の行が「2」で削除したい場合は、私はこれがあなたの答えを願っています

あなたの場合

delete from StudentDatabase where CustomerID = 2

としてクエリを記述する必要があります。

public class Test { 
public static void main(String[] args) { 
    int rowIndex = MyTable.getSelectedRow(); 
    String name = String.valueOf(MyTable.getValueAt(rowIndex, 1)); 

    try { 
     Connection con; 
     Statement stmt; 


     Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
     con = DriverManager.getConnection("jdbc:ucanaccess://C://Users//abdul//Desktop/StudentDatabase.accdb"); 


     stmt = con.createStatement(); 

     int result = stmt.executeUpdate("delete from StudentDatabase where CustomerName = '"+name+"'"); 

     if(result!=1){ 
      JOptionPane.showMessageDialog(null,"No record exists related to "+name); 
     } 



     stmt.close(); 
     con.close(); 
    } 
    catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 

}

+1

'得意=「StudentDatabaseから削除するには、おそらくより安全だ名前を持つ複数の行があるかもしれませんC001''マイクが置き換えられている場合、マイク – Guenther

+0

はあなたのポイントは、それも可能ですしまいました例えば、私は彼が削除したい名前を入力するように頼みます。もしmikeの代わりにlauraを入力すれば、lauraにmikeを置き換える方法、lauraの名前でレコードが存在しない場合は、そのレコードを印刷する方法はありません –

+0

もし複数のマイクがあれば争いになるかもしれませんが、特定のIDが存在しない場合はIDの場合は残念です。このIDに対するレコードはありません。 –

関連する問題