1

私の現在のプロジェクトでは、4 つの列を持つ jtable があります。重複データを 2 列目に保存したくないので、データベースに保存する前に jtable の各行をチェックします。

これが私のコードです:

String s="";
int row = table.getRowCount();
for (int i=0; i<row; i++) 
{
    s = table.getValueAt(i, 1).toString().trim();
    if (name.getText().equals(s)) 
    {
      JOptionPane.showMessageDialog(null, "data alreadyexist.","message",JOptionPane.PLAIN_MESSAGE);
    break; 
    } else {
      add();
      break;
    }
} 
4

3 に答える 3

2

私が見ることができるように、あなたはテーブル全体を反復しているわけではありません。データが最初の行で実行可能かどうかを確認するだけです。この後、メソッドは行2に同じデータがあり、壊れている可能性があることに気付いたので、1行追加して停止しました。これは、行ごとにチェックし、一致しない行ごとに、彼が見つけるまで新しい行を追加するためです。追加する行と一致する行

String s = "";
boolean exists = false;
for (int i=0; i<table.getRowCount(); i++) 
{    
    s = table.getValueAt(i, 1).toString().trim();
    if(name.equals(s))
    {
       exists = true;
       break;
    )
)
if(!exists) 
    add();
else 
    JOptionPane.showMessageDialog(null, "data already exist.","message",JOptionPane.PLAIN_MESSAGE);

これで、探している文字列が正しい方法でトリミングされているかどうかを確認するだけで、機能するはずです。

于 2012-11-26T13:31:09.230 に答える