JSP连接SQL问题修改数据只能修改一条

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:18:33
<%
Connection con = null;
Statement stat = null;
ResultSet rs = null;
try{
String sql="select a.spno,b.dname,a.spname,a.dno from speciality as a,department as b where a.dno=b.dno";
con = DBConnection.getConnection();
stat = con.createStatement();
rs = stat.executeQuery(sql);
int i = 0;
%>
<h3>
目前该系统只支持专业名称的修改</h3>
<table>
<form name="myform" action="/student/Alterspeciality" method="post">
<tr>
<td>专业编号</td><td>所属院系</td><td>专业名称</td><td>操   作</td></tr>

<%
while(rs.next())
{
i++;
String spno = rs.getString("spno");
String dname = rs.getString("dname");
String spname = rs.getString("spname");
%>
<tr><td><input type="text" name="spno" va

你把你打印出来(System.out.println)的sql也贴出来吧。有可能是sql语句有问题。

修改:
<input type="text" name="spno" value=<%=spno %> readonly></td><td><input type="text" name="dname" value=<%=dname %> readonly></td><td><input type="text" name="spname" value=<%=spname %>>
中,是做了循环,有多条数据,就有多个name为spno的元素,但是你点击更新按钮的时候,会把所有的元素提交到servlet。spno就不是string对象了,而是一个数组。在alter.jsp中就不应该用String spno = request.getParameter("spno");
该使用String spno[]=request.getParameterValues("spno");
然后再循环处理。

String sql = "update speciality set spname='"+spname+"'where spno='"+spno+"'";

在记录中spno是不是只有一个是等于你输入的条件,如果是当然只能修改一条。

是不是第一次执行成功后没用关闭连接

你想怎么样呢?不明白

我也不太明白