我想在数据库中相应列插入数据
<%
DBSQLManager dbsm=new DBSQLManager();
try{
String[] s=request.getParameterValues("text");
out.println(s[2]);
String[] m=new String[s.length];
for(int i=0;i<m.length;i++){
m[i]=new String(s[i].trim().getBytes("ISO-8859-1"));
}String sql="insert into qtiankong (QContent,QAnswer1,QAnswer2,QAnswer3,QAnswer4) values('"+m[0]+"','"+m[1]+"','"+m[2]+"','"+m[3]+"','"+m[4]+"')";
dbsm.setSqlStr(sql);
dbsm.executeUpdate();
dbsm.close();
}
catch(Exception ee){}
//response.sendRedirect("uploadq2.jsp");
%>
当数组s[]长度为5时就可以插入,但是小于5时就不行了,这是为什么阿
我也试过打印s[0]-s[4]当长度小于5时,前几个是可以打印的,就是录入不了数据库

解决方案 »

  1.   

    数组m[]中 ,
    象你说的,如果没有完全初始化的话
    m[]中存储的 是null
    null插入数据库是会出错误的。
    就会停止。
      

  2.   

    不对阿,我数据库里设置可以为空了。
    前面设计的即使插入null,数据库里显示的也是null
    是不是问题出在m[0]-m[4];
    我前面做的是用m[i]循环做的
      

  3.   

    String sql="insert into qtiankong (QContent,QAnswer1,QAnswer2,QAnswer3,QAnswer4) values('"+m[0]+"','"+m[1]+"','"+m[2]+"','"+m[3]+"','"+m[4]+"')";
    指定拉要插入5个字段后面的values就要跟5个值,要插入3个就要
    insert into qtiankong (QContent,QAnswer1,QAnswer2) values(v1,v2,v3)剩下的2个字段就会自动插入null不能前面定义插入5个后面只有4个值
      

  4.   

    你的代码在当数组s[]长度小于5时是会报错的,是数组越界错误,
    你要把代码改为:
    <%
    DBSQLManager dbsm=new DBSQLManager();
    try{
    String[] s=request.getParameterValues("text");
    out.println(s[2]);
    String[] m=new String[5];
    for(int i=0;i<m.length;i++){
    m[i]=new String(s[i].trim().getBytes("ISO-8859-1"));
    }
    for(int i=4 ;i>=m.length;i--){
      m[i]="";
    }
    String sql="insert into qtiankong (QContent,QAnswer1,QAnswer2,QAnswer3,QAnswer4) values('"+m[0]+"','"+m[1]+"','"+m[2]+"','"+m[3]+"','"+m[4]+"')";
    dbsm.setSqlStr(sql);
    dbsm.executeUpdate();
    dbsm.close();
    }
    catch(Exception ee){}
    //response.sendRedirect("uploadq2.jsp");
    %>
      

  5.   

    赞成  powerman_lyj(刘瑜江)