Jsp 仅更新第一行的JDBC表
嗨,当我试图更新一个jdbc表时,只有下面第一行更新了它的代码。虽然我每行都有一个单独的按钮,但我单击的任何按钮都将输入值作为第一行的值Jsp 仅更新第一行的JDBC表,jsp,jdbc,Jsp,Jdbc,嗨,当我试图更新一个jdbc表时,只有下面第一行更新了它的代码。虽然我每行都有一个单独的按钮,但我单击的任何按钮都将输入值作为第一行的值 <tr> <td><%=rs.getString("DBID")%></td> <td><input type="text" name="prev" id="prev" value="<%=rs.getString("Query_Raised")
<tr>
<td><%=rs.getString("DBID")%></td>
<td><input type="text" name="prev" id="prev" value="<%=rs.getString("Query_Raised")%>" border=''></td>
<td><%=rs.getString("TR")%> </td>
<td><%=rs.getString("Query_Answered")%></td>
<td><%=rs.getString("TA")%></td>
<td><input type="submit" value="Edit">
</tr>
为了比较,我使用了下面的(where条件),它也只取第一行的值
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body><form method="post" action="Up_Query_DB.jsp">
<table><tr><td> <input type="text" id="xyz" name="xyz" value="<%=request.getParameter("prev")%>"></td></tr>
<tr><td><INPUT TYPE="TEXT" NAME="updat" id="updat"></td></tr>
<tr><td><input type="submit" value="Update"></td></tr></table></form>
</body>
JSP页面
我使用的更新是
<% try
{
String sc=request.getParameter("xyz");
String upd=request.getParameter("updat");
ps=con.prepareStatement("Update Scope1 Set Query_Raised='"+upd+"' where Query_Raised='"+sc+"'");
int i=ps.executeUpdate();
if(i==1)
{
String redirectURL= "View Queries.jsp";
response.sendRedirect(redirectURL);
}
else{
out.print("Erro");
}
}
catch(Exception e)
{
out.println("error");
}%>
谢谢1)它有助于编写有效的HTML
2) 即使您每行都有一个编辑按钮,您也无法知道在提交表单时实际按下了哪些按钮-它们都是相同的。
实现多行编辑最常用的方法是为每一行使用单独的表单。除非您希望能够编辑多行,然后一次提交所有更改,否则您需要通过为数据输入字段指定唯一的名称来区分行的数据 稍后编辑:
3) 基于要更改的值更新表行是个坏主意,原因有很多,其中一个原因是查询可能会更新您不知道甚至不存在的行
<tr>
<form ... >
<td> <input type="hidden" name="recordID" value="%dynamicRecordIDFromYourDB%" /> </td>
...
<td> <input type="text" name="data" value="%updatableDataFromYourDB" />
<td> <input type="submit" ... />
</form>
</tr>
1) 它有助于编写有效的HTML
2) 即使您每行都有一个编辑按钮,您也无法知道在提交表单时实际按下了哪些按钮-它们都是相同的。
实现多行编辑最常用的方法是为每一行使用单独的表单。除非您希望能够编辑多行,然后一次提交所有更改,否则您需要通过为数据输入字段指定唯一的名称来区分行的数据 稍后编辑:
3) 基于要更改的值更新表行是个坏主意,原因有很多,其中一个原因是查询可能会更新您不知道甚至不存在的行
<tr>
<form ... >
<td> <input type="hidden" name="recordID" value="%dynamicRecordIDFromYourDB%" /> </td>
...
<td> <input type="text" name="data" value="%updatableDataFromYourDB" />
<td> <input type="submit" ... />
</form>
</tr>
你好,阿灵顿,谢谢你的回答,如果你不介意的话,请编辑我上面的代码并显示出来。请谢谢,请不要等待我们为您编写完整的代码-您将等待很长时间。谢谢代码,但我的代码在1行中运行良好,正如您所说,我应该使用多个表单,请帮助我如何操作?谢谢你没有注意到在我的版本中,表单在单独的行中吗?这样做的效果是,只有来自该行的数据才会提交到表单处理页面。这样,不同的行不需要具有唯一的字段名。如果您希望能够编辑多行并同时提交所有更改,则需要为每行提供唯一的字段名(最常见的方法是在每个字段名后面添加recordID)。好的,谢谢您,很抱歉没有注意到这一点。但是在我的IDE(NetBeans)中,它说表单不能是hi Arlington的孩子,谢谢你的回答,如果你不介意的话,请编辑我上面的代码并显示。请谢谢,请不要等待我们为您编写完整的代码-您将等待很长时间。谢谢代码,但我的代码在1行中运行良好,正如您所说,我应该使用多个表单,请帮助我如何操作?谢谢你没有注意到在我的版本中,表单在单独的行中吗?这样做的效果是,只有来自该行的数据才会提交到表单处理页面。这样,不同的行不需要具有唯一的字段名。如果您希望能够编辑多行并同时提交所有更改,则需要为每行提供唯一的字段名(最常见的方法是在每个字段名后面添加recordID)。好的,谢谢您,很抱歉没有注意到这一点。但在我的IDE(NetBeans)中,它说表单不能是Hi Rakesh的孩子,我很遗憾您没有重新考虑将JDBC代码放入JSP的想法。我已经在你的
s
上没有id
属性了。如果您现在为所有这些代码添加相同的id,那就没用了……嗨,Rakesh,我很遗憾您没有重新考虑将JDBC代码放入JSP的想法。我已经在你的s
上没有id
属性了。如果您现在为所有用户添加相同的id,则没有任何帮助。。。