Java 如何在jsp页面中从多行记录(如gridview)中删除单个记录
我正在尝试从多个记录中编辑和删除单个记录。下面是我在jsp页面上显示的示例记录 我可以使用下面的代码轻松编辑每行的记录Java 如何在jsp页面中从多行记录(如gridview)中删除单个记录,java,javascript,jsp,Java,Javascript,Jsp,我正在尝试从多个记录中编辑和删除单个记录。下面是我在jsp页面上显示的示例记录 我可以使用下面的代码轻松编辑每行的记录 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.List" %> <%@ page import="java.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@page import="java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="jquery1.11.0.min.js"></script>
</head>
<body>
<script type="text/javascript">
function editRecording(task_id) {
//alert(task_id)
url = "EditRecord";
window.location="/RTTSchecking/"+url+"?task_id="+task_id;
}
</script>
<table align="center" border="1px" width="80%" >
<thead>
<tr>
<th>User_Id</th>
<th>Class</th>
<th>Subject</th>
<th>Chapter</th>
<th>Planned_Features</th>
<th>Planned_Date</th>
</thead>
<%Iterator itr;%>
<%List data = (List) request.getAttribute("TaskData");
for(itr = data.iterator(); itr.hasNext();)
{
%>
<tr>
<% String s = (String) itr.next();
%>
<td style="background-color: yellow;">
<input type="text" name="tid" value="<%=s %>"></td>
<td><input type="text" name="tid" value="<%=itr.next() %>"></td>
<td><%=itr.next() %></td>
<td><%=itr.next() %></td>
<td><%=itr.next() %></td>
<td><%=itr.next() %></td>
<td><input type="button" value="edit" name="<%=s%>" onclick="editRecording(this.name);"></td>
<td><input type="button" value="delete" name="<%=s%>" onclick="deleteRecording(this.name);"></td>
<% } %>
</tr>
</table>
</body>
</html>
try {
String uid=request.getParameter("user_id");
String class=request.getParameter("Tclass");
String sub=request.getParameter("subject");
String chap=request.getParameter("chapter");
String date=request.getParameter("date");
convty = new Connectivity();
con = convty.setConnection();
st = con.createStatement();
query = "delete from task_table where User_id='"+uid+"' and class='"+class+"' and subject='"+sub+"' and chapter='"+chap+"' and date='"+date+"'";
st.executeUpdate(query);
}
catch(Exception e) {
}
上面的代码运行良好。但我的问题是,我想根据用户id、类、主题、章节和计划日期删除记录,所以如何从单行(要删除行)中获取这些值
如何实现以下代码
<script type="text/javascript">
function deleteRecording(User_id,Class,Subject,Chapter,Date) {
//alert(task_id,Class,Subject,Chapter,Date)
url = "EditRecord";
window.location="/RTTSchecking/"+url+"?user_id="+User_id+"&Tclass="+Class+"&subject="+Subject+"&chapter="+Chapter+"&date="+Date;
</script>
注意:我可以使用delete from task_table删除记录,其中User_id='“+uid+”强>
但是如何处理query=“从任务”表中删除,其中用户id=“+uid+”,类=“+class+”,主题=“+sub+”,章节=“+chap+”,日期=“+date+”强>
我希望有人能帮助我。一旦您从数据库中删除数据,这意味着它已被删除
单击“删除”按钮,您只需重新加载该页面。我希望您现在已经找到了问题的解决方案。但如果您没有,我今天遇到了同样的问题,经过多次实验,我提出了以下使用多个条件删除行的语法:
" DELETE FROM table_name WHERE " +
" first_db_field_name = '" + matching_variable_name + "'" +
" and next_db_field_name = '" + next_matching_variable_name + "'" +
" and last_db_field_name = '" + last_matching_variable_name + "'";
他不是那个意思。他询问如何将类、主题、章节、日期的值传递给从网页获取数据的代码。我理解,但我的问题是,当单击“删除”按钮时,如何获取所有值?好的,你能分享你的代码吗?抱歉,删除了该评论。因为您是通过URL传递值,所以您将在servlet中的doGet操作中进行传递。因此,您必须在该标记内的隐藏参数中指定值。为什么在前两个字段中都指定name=“tid”。。?可能在第一个字段中更改为name=“uid”,在第二个字段中更改为name=“class”。最后,在onclick中,像onclick=“editRecording(uid,class);”>一样传递它,如果我使用editRecording(uid,class,chapter,subject,date)传递值,这意味着它总是采用第一行的值而不是所选行的值。如果您的编辑和删除正确地包含在该特定行中,它将起作用。。
" DELETE FROM table_name WHERE " +
" first_db_field_name = '" + matching_variable_name + "'" +
" and next_db_field_name = '" + next_matching_variable_name + "'" +
" and last_db_field_name = '" + last_matching_variable_name + "'";