2017-11-20 11 views
0

私はデータベースからエントリをリストアップするのに成功しましたが、チェックボックスの助けを借りてエントリを削除したいと思います。だから誰かがチェックボックスをチェックすると、特定のエントリを削除する必要があります。リストからエントリを削除する

私は参照の助けを借りてコードを書いていますが、私の車両IDはIntegerで、文字列のコードに書いていますが、Interger.parseIntに変換しようとすると動作しません。ここで

が私のコードです:

Listing.Jsp

<TR> 
<th>Vehicle ID </th> 
<th> EzTagCode </th> 
<th> Vehicle Type </th> 
<th> Plate No </th> 
<th> Model Name </th> 
<th> Color </th> 
</TR> 
<TR> 
<% 
int i=0; while (rs.next()) { 
%> 
> 
<%--<td><input type="checkbox" name="check<%=i%>" --%> 
<TD><%=rs.getInt(1)%></TD> 
<TD><%=rs.getString(3)%></TD> 
<TD><%=rs.getString(4)%></TD> 
<TD><%=rs.getString(5)%></TD> 
<TD><%=rs.getString(6)%></TD> 
<TD><%=rs.getString(7)%></TD> 
</TR><% 
i++; 
%> 
<% } %> 
<% 
// close all the connections. 
rs.close(); 
st.close(); 
conn.close(); 
} catch (Exception ex) { 
%> 
</font> 
<font size="+3" color="red"></b> 
<% 
out.println("Unable to connect to database."); 
} 
%> 
</TABLE> 
<input type="submit"> 

Delete.jsp

<%String id[]= new String[10]; 
for(int i=0;i<10;i++){ 
id[i]=request.getParameter("check"+i); 
int b = Integer.parseInt(id[i]); 
out.println(id[i]); 

%> 
<% 
try { 

st=conn.createStatement(); 
for(int a=0;a<10;a++){ 
out.println("hello"); 
String QueryString = "delete from Vehicle where VehicleID='"+id[a]+"'"; 
rs = st.executeQuery(QueryString); 
+0

パラメータ化されたクエリを使用するには、これを変更する必要があります。さもなければ、ハッカーは要求を傍受し、idを ''OR 1 = 1 --'のように変更することができます。これは常に真であり、データベース内のすべての車両を削除します。 – dwilliss

+0

私はあなたの提案を感謝しますが、今は私たちが学校プロジェクトをやっているので、後でそれを変更することができます – stanley

答えて

0

ここではない( "チェック" + i)はrequest.getParameterでチェックint出力が生成されない理由です。

id[i]=request.getParameter("check"+i); 
int b = Integer.parseInt(id[i]); 
関連する問題