0

私のコードには繰り返しが多いので、それらの部分を簡略化します。エラーが報告されていないため、コードの何が問題なのかわかりません..何も起こりません。

Netbeans GUI、jdbc、および MS SQL を使用しています。私の接続は、preparedstatement = pst connection = conn などでしっかりしています。

ここでの目的は、テキストと列を SQL の単一の結果セット テーブルに保存することです。

コードは、アクションのプライベート void によってアクティブ化されます。

 private void INSERT1saveCustomers() {
    int index=1;
    int count = jTable1.getRowCount();

    for(int i=0;i<count;i++){

        SET0 = new Object[1][count];
        SET0[0][i] = txtTestiNIMI1.getText(); }

これは、SET という名前のすべてのオブジェクトに対して繰り返されます。続いて、同様の方法で SAVE を定義します。

SAVE = new Object[1][count];  
SAVE[0][i] = jTable1.getModel().getValueAt(i,0);

次に、2つのSQLクエリにつながります

String sqla1 = "INSERT INTO MIT(MTY_KOD,MTY_TYY,MTY_ALU,MTY_PARA1,MTY_PARA2,MTY_TOL,MTY_KAN) values(?,?,?,?,?,?,?)";
  try{
    pst = conn.prepareStatement(sqla1);

   pst.setObject(1, SET0);
   pst.setObject(2, SET2);
   pst.setObject(3, SET1);
   pst.setObject(4, SAVE);
   pst.setObject(5, SAVE3);
   pst.setObject(6, SAVE5);
   pst.setObject(7, SET3);
   rs = pst.executeQuery();
   }

catch(Exception e){}


 String sqlb1 = "INSERT INTO TEST(TET_KOD,TET_LUK,TET_ARE,TET_YRE,TET_PVF,TET_TEMP,TET_HUM,TET_DATE, TET_VIR, TET_ERR) values(?,?,?,?,?,?,?,?,?,?)";
 try{
       pst = conn.prepareStatement(sqlb1);

   pst.setObject(1, SET0);
   pst.setObject(2, SAVE4);
   pst.setObject(3, SAVE6);
   pst.setObject(4, SAVE7);
   pst.setObject(5, SET4);
   pst.setObject(6, SET5);
   pst.setObject(7, SET6);
   pst.setObject(8, SET2);
   pst.setObject(9, SAVE8);
   pst.setObject(10, SET7);
   rs = pst.executeQuery();
   }

catch(Exception e){}

    }

エラーは報告されていません...そして、はい、例外eが現在存在することは知っていますが、常にそうであるとは限りません:P

情報は決して保存されません。私も同じ問題で pst.setString(x,SET.toString()) を使用しようとしたので、どこから問題に対処すればよいかわかりません。どんな助けでも大歓迎です...ありがとう!

4

1 に答える 1

1

データを挿入、更新、または削除するには、 を使用する必要がありますstatement.executeUpdate()

そしてお願いします: 例外を飲み込まないでください。これが、何も起こらないと思わせる原因です。何かが起こります: 例外がスローされますが、次のように無視することを選択します:

catch (Exception e){}

このメソッドで例外を処理する方法がわからない場合は、次のようにメソッドをスローします。

public void foo() throws SQLException

または少なくとも、それをキャッチしますが、ランタイム例外にラップして再スローします。

catch (SQLException e) {
    throw new RuntimeException(e);
}
于 2012-07-04T10:27:16.047 に答える