说明:dbConn1是数据库连接,已经连上;
st1是Statemnet类型;
list1是ArrayList类型;
aa,bb,cc,dd,ee,ff,result是Float型;
目的是将这7个变量插入到数据库t1表中对应的7个字段(A,B,C,D,E,F,Result)中;
运行的时候7个变量值能够在控制台下循环输出,没有错误。
但是执行了st1.executeUpdate(sql1)后数据库中插入的全是null,不是值,这是为什么;
------------------------------------------------------------------------------st1=dbConn1.createStatement();
String sql1="INSERT INTO t1(A,B,C,D,E,F,result) VALUES("+aa+","+bb+","+cc+","+dd+","+ee+","+ff+","+result+");";
 for(int i=0;i<list1.size();i=i+7){
                aa=list1.get(i);
                bb=list1.get(i+1);
                cc=list1.get(i+2);
                dd=list1.get(i+3);
                ee=list1.get(i+4);
                ff=list1.get(i+5);
                result=list1.get(i+6);
                st1.executeUpdate(sql1);
}

解决方案 »

  1.   

    把sql1="xxxxxxx"这句移到st1.executeUpdate(sql1)上面。
    楼主你真不应该来做程序员啊,
    看到这么弱的代码连我这个千年潜水员都忍不住要跳出来踩几脚!!!
    我踩踩踩...
      

  2.   

    LZ 啊,你的变量应该先赋值啊,再声明sql
      

  3.   

    to:tedeyang 
    没办法就是这个水平,以后少不得还得请你跳出来踩呢
      

  4.   

    如楼上所说,换一下语句的顺序
        st1 = dbConn1.createStatement();
        for (int i = 0; i < list1.size(); i = i + 7) {
          aa = list1.get(i);
          bb = list1.get(i + 1);
          cc = list1.get(i + 2);
          dd = list1.get(i + 3);
          ee = list1.get(i + 4);
          ff = list1.get(i + 5);
          result = list1.get(i + 6);
          st1.executeUpdate(sql1);
        }
        String sql1 = "INSERT   INTO   t1(A,B,C,D,E,F,result)   VALUES(" + aa + "," + bb + "," + cc + "," + dd + "," + ee + ","
            + ff + "," + result + ");";
      

  5.   

     lz我用的access的数据库
    int aa, bb, cc, dd, ee, ff;
            aa = bb = cc = dd = ee = ff = 1;
            float result = 1.0f;
            String strurl =
                    "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=a.mdb";
            String sql1 = null;
            Statement st1 = null;
             Connection dbConn1;
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                 dbConn1 = DriverManager.getConnection(strurl);
                sql1 = "INSERT   INTO   t1(A,B,C,D,E,F,result)   VALUES(" + aa +
                       "," + bb + "," + cc + "," + dd + "," + ee + "," + ff +
                       "," + result + ");";
                System.out.println(sql1);
                st1 = dbConn1.createStatement();
                st1.executeUpdate(sql1);//这里是添加的
                dbConn1.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            } 
            
            
            
            
            
          List list1 = new ArrayList();
          ResultSet set;
                try {
                    dbConn1 = DriverManager.getConnection(strurl);
                    st1 = dbConn1.createStatement();
                    sql1 = "select * from t1";
                    set = st1.executeQuery(sql1);     //这个才是查询啊2个不能搞在一起那
                    while(set.next())
                    {
                        for (int i = 1; i < 7; i++) {
                             list1.add(set.getInt(i));
                        }                    
                        list1.add(set.getFloat(7));
                       
                    }
                    dbConn1.close();
                } catch (Exception ex1) {
                    ex1.printStackTrace();
                }
            for (int i = 0; i < list1.size(); i++) {
                System.out.println(list1.get(i).toString());
            }
      

  6.   

    st1 = dbConn1.createStatement(); 
    for (int i = 0; i < list1.size(); i = i + 7) { 
        aa     = list1.get(i); 
        bb     = list1.get(i + 1); 
        cc     = list1.get(i + 2); 
        dd     = list1.get(i + 3); 
        ee     = list1.get(i + 4); 
        ff     = list1.get(i + 5); 
        result = list1.get(i + 6); 
        String sql1 = "INSERT INTO t1(A,B,C,D,E,F,result) VALUES(" + aa + "," + bb + "," + cc + "," + dd + "," + ee + ","  + ff + "," + result + ");"
        st1.executeUpdate(sql1); 
    } ;
      

  7.   

    为什么不用PreparedStatement呢
    方便多了