2012-09-05 25 views
0

嗨當​​我試圖更新jdbc表只有第一行得到更新下面是它的代碼。儘管每行都有一個單獨的按鈕,但是我點擊的任何按鈕都將輸入值作爲第一行。JDBC表只更新第一行

<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> 

以及用於比較我用下面的(對於其中條件),並且它也只服用的第一行值

<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> 

,我使用的更新是

<% 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"); 

    }%> 

謝謝

+0

拉克什您好,我很遺憾你(仍然)(http://stackoverflow.com/questions/12264011)沒有重新考慮你把JDBC代碼在JSP的想法。我已經[註釋](http://stackoverflow.com/questions/12264011/edit-and-update-same-textbox#comment16443554_12264011)在您的' s'沒有'id'屬性。它不會幫助,如果你現在都添加相同的ID ... –

回答

3

1)它有助於編寫有效的HTML
<td><input type="submit" value="Edit"></td>
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> 

上面的代碼對於單行更新選項很常見。然後您更新SQL看起來像:

sqlString = "Update tableName Set updatableFiled ='" + data + "' where recordID = " + recordID; 
+0

嗨阿靈頓,感謝您的答案,如果你不介意,請你編輯我的上述代碼並顯示。請。謝謝 – Rakesh

+0

請不要等我們爲你寫完整的代碼 - 你會等很長時間**。 –

+0

感謝您的代碼,但我的代碼工作正常的1行,因爲你說,我應該使用多種形式,請幫助我,我該怎麼做?謝謝 – Rakesh