当前位置: 代码迷 >> Eclipse >> 在jsp中向数据库中录入数据,该怎么解决
  详细解决方案

在jsp中向数据库中录入数据,该怎么解决

热度:74   发布时间:2016-04-23 13:42:31.0
在jsp中向数据库中录入数据
获取从上一个页面传递的表单的参数,有多行,这样不行,应该怎么改呢?
String chengji[]={};
  String xueshenghao[]={};
  for(int j=0;j<=rowCount1;j++)
  {
  xueshenghao[j]=request.getParameter("xueshenghao");
  chengji[j]=request.getParameter("chengji");
  }


在向数据中录入多行数据时
  ResultSet rs=stmt.executeQuery("select 学生号 from 学生 where 班号='"+banhao+"'");
  rs.next();
  int rowCount=rs.getRow();
  rs.beforeFirst();
  for(int i=0;i<=rowCount;i++)
  {
  stmt.executeUpdate("insert into 成绩(学生号,成绩) values('"+xueshenghao[i]+"','"+chengji[i]+"')");
  }
  %>
  <script language="javascript" type="">
  alert("该班成绩录入成功!");
  </script>
  <% 


这样的话哪里错了呢?

------解决方案--------------------
你这样写肯定是不对的,循环里request.getParameter("xueshenghao")肯定返回的是同一个值,你一直插入同一个值,如果数据库里有设置唯一约束或主键的吧,会报错的。
首先你A页面肯定是可以输入多个学生号和成绩的,这样的话你得用 request.getParameterValues("xueshenghao")[i] 这个来接收数组参数。
------解决方案--------------------
你先要确定rowCount有没有取到值
报错的地方肯定在循环里,你得这样写


String[] arr_studentNo=request.getParameterValues("xueshenghao");
String[] arr_score=request.getParameterValues("chengji");

if(arr_studentNo.length!=arr_score.length) return;//A页面填入的学生号和成绩应该是一一对应的


for(int j=0;j<=rowCount1;j++)
{
for(int k=0;k<arr_studentNo.length;k++)
{
xueshenghao[j]=arr_studentNo[k];
chengji[j]=arr_score[k];
}
}


--------------------------

我没明白你的要求?能再补充一下吗

我感觉你是要把从A页面传递过来的参数列成数组,然后将数组里的数据动态插入到数据库里。。
  相关解决方案