2013-04-22 67 views
0

這裏是我的servlet代碼...的ResultSet中的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」 顯示below--

1. uname(nvarchar[50]) 
2. pwd(nvarchar[20]) 

所以我試圖調試,發現程序執行到達查詢存儲在字符串中的位置,但查詢未執行,並且程序的進度在存儲QUERY STRING後立即停止... ...

我可以指出錯誤,需要幫助。

+0

在調試過程中,您是否檢查了是否爲'UNM'和'h1'獲取了正確的值? – Kishore 2013-04-22 09:17:16

+0

@Nandakishore K yes ... – 2013-04-22 09:18:01

+0

您是否使用相同的值從數據庫手動檢查? – Kishore 2013-04-22 09:18:33

回答

0

你可以嘗試以下方法:

  1. 嘗試查詢更改爲類似select * from table你一定要有一定的成果,確保與數據庫的訪問工作正常那裏。
  2. 修剪開頭或結尾的任何空格的「uname」和密碼,這可以解釋爲什麼查詢無法找到值,並確保您測試的值存在於數據庫表中。
  3. 取決於你的DBMS,你可以考慮使用像運營商"%"
0

可能有而你沒有提及catch塊這樣就把漁獲物和調試數據庫連接任何異常。

+0

這應該是一個評論 – Kishore 2013-04-22 09:34:39

+0

對不起兄弟...我已經回答了我的問題...我非常抱歉在這個愚蠢的問題上浪費你寶貴的時間。這是我的壞。但是我需要你的建議---如果我解決這個問題,或者它可以用於某人? – 2013-04-22 09:40:04

+0

@AkashTripathi因爲這只是你意外發生的一個錯誤(這是一個關注你寫的內容的問題),所以你肯定可以刪除這個問題。 – informatik01 2013-04-22 20:49:48

1

也似乎滑稽......但現在我已經意識到我浪費了我的5小時只是因爲一個右括號的..

"select * from img_pwd where uname='"+UNM+"' and pwd='"+h1+"')" 

u能找出「)」 .. ??? 是的,那是錯誤的。刪除它後代碼工作正常。

0

是從

刪除 「)」 '+ UNM + 「和pwd = ' 」+ H1 +「') 」

您的查詢字符串應該是這樣的「,從img_pwd其中UNAME =選擇*」' :

select * from表