0

最初に、これは1行の情報がある場合は機能しますが、何らかの理由で多くの場合は機能しないことに注意してください...これが私の質問です...コードはかなり長いので、分割して投稿します:

   int count = jTable1.getRowCount();

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


        SET0listm.add(i, txtTestiNIMI1.getText());
        System.out.println("SET0"+SET0listm);

...

    SAVED8listm.addElement(jTable1.getModel().getValueAt(i,7));
        System.out.println("SAVED8"+SAVED8listm);

    }

文字列に移動し、すべての余分な部分を次のように削除します。

    String SET0listmtostring = SET0listm.toString();
        SET0listmtostring = removeChar(SET0listmtostring, ']');
        SET0listmtostring = removeChar(SET0listmtostring, '[');

String sqla1 = "INSERT INTO MIT(MTY_KOD,MTY_TYY,MTY_ALU,MTY_PAR1,MTY_PAR2,MTY_TOL,MTY_KAN,MTY_DATE) "+"VALUES (?,?,?,?,?,?,?,?)";

 try{
   pst = conn.prepareStatement(sqla1);

   pst.setString(1, SET0listmtostring);
   pst.setString(2, SET2listmtostring);
   pst.setString(3, SET1listmtostring);
   pst.setString(4, SAVEDlistmtostring); 
   pst.setString(5, SAVED3listmmtostring); 
   pst.setString(6, SAVED5listmmtostring); 
   pst.setString(7, SET3listmtostring); 
   pst.setString(8, SET2listmtostring); 
   pst.executeUpdate();}
   catch (Exception e) {
   System.out.println("MITCLAUSE "+e);
        }

最後の部分がキャッチ

MITCLAUSE com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.

ここに何の問題があるの?

4

2 に答える 2

0

エラーを考えると、設定した文字列の 1 つが列の宣言された長さよりも長いと思われます。その場合、ドライバーはこのような例外をスローする必要があります。

そのため、文字列の長さを確認し、テーブル内の列の宣言された長さと比較してください。

于 2012-07-10T15:08:04.070 に答える
0

紳士の答えを組み合わせて、要素の新しいループを作成すると、必要なフォームが生成されるようです

于 2012-07-11T07:24:52.087 に答える