2012-07-10 67 views
0

首先关闭id,注意当有一行信息时有效,但当出于某种原因有很多时不起作用......这就是我的问题所在......由于代码是体面长,我将它张贴在片:使用JList通过JDBC将表数据保存到数据库通过JDBC

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. 

唐诺什么德问题是在这里

+0

为更好地帮助更快张贴[SSCCE](http://sscce.org/ ) – mKorbel 2012-07-10 14:28:22

回答

0

由于错误,我怀疑你设置比列的声明长度长的字符串之一。在这种情况下,司机必须抛出像这样的例外。

因此,检查您的字符串的长度,并将它们与表中列的声明长度进行比较。

+0

你是正确的我检查,它实际上迭代代码重复太多次...所以例如:SAVED8 = [24,24,24,24]是我想要的...而我得到SAVED8 = [24] ,[24,24],[24,24,24],[24,24,24,24] ..所以需要将代码更改为仅包含最大版本。 – NeedyHelpo 2012-07-10 17:39:28

+0

其他大小没有错误,但将日期放在4次可能会创建一个惯例错误,因为即时通讯使用varchar30 atm ..所以我会看看是否有效 – NeedyHelpo 2012-07-10 17:49:46

+0

这解决了将它到数据库的问题......假设现在问题是从1行进入到所有i行 – NeedyHelpo 2012-07-10 17:56:30

0

这似乎是与君子的组合回答和创造元素的新循环将产生所需要的形式

相关问题