在supplier.java里我定义了一个获取数组的属性,代码如下:
        public void setValues(String[] values) {
this.values = values;
}
public String[] getValues() {
return values;
}我在supplierAction.java里定义了一个更新supplierproductclass_tb表的方法,代码如下:
public boolean supplierproductclass(supplier sup){        
//----------------------------添加数据到supplierproductclass_tb表------------------------------
 boolean result = false; 
 DBCon db = new DBCon();
 int Product=0;
 String[] v = sup.getValues();
 if( v!= null){
     for(int i = 0;i < v.length;i++){
    String sql = "insert into supplierproductclass_tb values('1','"+v[i]+"')";
Product = db.update(sql);
 }    
 }
if(Product > 0)
result = true;
    db.close();
        return result;
 }
小弟不知道哪里有问题,,当数组只有一个值可以运行,两个以上就调试不成功,请各位高手帮忙。

解决方案 »

  1.   

    1.String sql = "insert into supplierproductclass_tb values('1','"+v[i]+"')";
     你的表只有两行?如果不是,这个SQL赋值就该列出来,
      或者insert into supplierproductclass_tb values("","","",...."")之类的,有多少列就对应好
      或者nsert into supplierproductclass_tb(列名)  values('1','"+v[i]+"')";
    2.String sql = "insert into supplierproductclass_tb values('1','"+v[i]+"')";
      你这里每次都是插入“1”,这列你确保了数据不是唯一 ?
    3.你确保你的getvalue能获取成功?你的String[] values初始化了没,这些都无法帮你确定,
      

  2.   

    问题很明显吗,你后台肯定是报insert的主键不能重复是不咯
    就是这段代码出了问题for(int i = 0;i < v.length;i++){
    String sql = "insert into supplierproductclass_tb values('1','"+v[i]+"')";
    Product = db.update(sql);
    } 你insert了两次,但用的是同一个主键。
      

  3.   

    2楼,插入“1”是唯一的,我的表只有2列,数据是从jsp里传递过来的
    3楼,如果不是这样,哪如何更新表的数据?
      

  4.   

    你可以每次都插入不同的值嘛,看你是想插入1 2 3 4 之类的数字进去吧,其实,你可以这样子写
    String s=""+i;
    "insert into supplierproductclass_tb values("+s+","+v[i]+"')";
      

  5.   

    supplierproductclass_tb 的字段信息是什么?请速给出;