[英]ResultSet in servlet contains no values
這是我的servlet代碼...
try {
HttpSession session=request.getSession(true);
String FN= (String)session.getAttribute("FN");
String h1= request.getParameter("h1"); //contains the password value
if(h1=="" || h1== null)
{
response.sendRedirect("PERROR.html"); // if no value in passwrd field
}
else{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:dsn2");
Statement st=con.createStatement();
String UNM= (String)session.getAttribute("uname");
String query= "select * from img_pwd where uname='"+UNM+"' and pwd='"+h1+"')";
// validating from the table img_pwd
ResultSet r= st.executeQuery(query);
if(r.next())
{
con.close();
response.sendRedirect("ACCOUNT.jsp"); //success, go to dashboard
}
else
{
response.sendRedirect("PERROR.html"); // if the password-mismatches
}
}
} finally {
out.close();
}
表格“ img_pwd”如下所示-
1. uname(nvarchar[50])
2. pwd(nvarchar[20])
因此,我嘗試調試,發現程序執行到查詢存儲在字符串中的位置為止,但是查詢沒有執行,並且存儲了QUERY STRING之后,程序的進程也停止了。
我想找出錯誤,需要幫助。
以及它似乎滑稽......但現在我已經意識到我浪費了,只是因為一個右括號我5小時..)
"select * from img_pwd where uname='"+UNM+"' and pwd='"+h1+"')"
你能找出“)”嗎?。??? 是的,那是錯誤。 刪除它后,代碼工作正常。
您可以嘗試以下方法:
select * from table
查詢,在該查詢select * from table
,您應該確定會有一些結果,以確保對數據庫的訪問按預期進行。 "%"
與數據庫連接時可能沒有任何異常,而您沒有提到catch塊,因此請進行catch和調試。
是的,從中刪除“)”
“從img_pwd中選擇*,其中uname ='” + UNM +“'和pwd ='” + h1 +“')”
您的查詢字符串應如下所示:
從表中選擇*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.