我有一個數據庫表,我可以編輯一個值。我想更新相同,下面是我嘗試過的代碼。編輯和更新相同的文本框
表的代碼如下
<table border="1px">
<tr>
<td><b>DBID</b></td>
<td><b>Query Raised</b></td>
<td><b>Time Raised</b></td>
<td><b>Query Answered</b></td>
<td><b>Time Answered</b></td>
</tr>
<%
try {
ps = con.prepareStatement("Select DBID, Query_Raised, TR, Query_Answered, TA from Scope1 where TR!='null'");
rs = ps.executeQuery();
while(rs.next()) {
%>
<tr>
<td><%=rs.getString("DBID")%></td>
<td><input type="Text" value="<%=rs.getString("Query_Raised")%>" name="Updat"></td>
<td><%=rs.getString("TR")%> </td>
<td><%=rs.getString("Query_Answered")%></td>
<td><%=rs.getString("TA")%></td>
<td><input type="Submit" value="Update"></td>
</tr>
<%
} // while loop ends here
rs.close();
con.close();
} catch(Exception e) {
out.println(e);
}
%>
</table>
和所使用的更新查詢:
String a = request.getParameter("Updat");
ps = con.prepareStatement("Update Scope1 Set Query_Raised = '" + a + "'");
int i = ps.executeUpdate();
if(i == 1) {
out.print("Done");
} else{
out.print("Erro");
}
我想知道,我應該使用更新相同的數據where條件頁。
感謝
請不要將數據庫代碼放入JSP中! JSP是** view **組件,並且您的查詢應該封裝在** model **一側的bean中(請參見[這裏](https://en.wikipedia.org/wiki/Model%E2%80%93view %E2%80%93controller)的大圖)。一旦你建立這個結構,你會發現很多問題已經解決。 –
與您的問題相關:爲您的''字段添加唯一標識符,因此提交後您可以找出哪些已被修改。 –
對於像這樣的簡單情況,構建MVC通常是一種純粹的矯枉過正,因爲它需要額外的代碼並需要時間來構建和部署,而只需將代碼放入JSP中就需要基本刷新頁面。 – Endy