2013-01-13 15 views

cevap

74

Yerine:

rs = ps.executeQuery(Query); 
rs = ps.executeQuery(); 

Aksi takdirde, unprepare ifadenizi ve bunu yeni bir SQL deyimi atamak çünkü (aynı olsa bile) tüm parametreleri kaybetmek:Eğer yürütmek gerekir.

+0

Amazing Codo ile olduğunu düşünüyorum. İyi bir açıklama da – Oliver

+0

Kesinlikle benden daha değerli. Keşke daha çabuk davranırdım. – JeremyP

0

eposta sütun ekleyin ..

String uname,pass; 
    ResultSet rs = null; 
    response.setContentType("text/html"); 
    PrintWriter out=response.getWriter(); 
    try 
    { 
    uname=request.getParameter("uname"); 
    pass=request.getParameter("pass"); 
    Connection con=prepareConnection(); 
    String Query="select uname from passmanager where pass=?"; 
    PreparedStatement ps=con.prepareStatement(Query); 
    ps.setString(1,pass); 
    rs=ps.executeQuery(Query); 
    if (rs.next() && uname.equalsIgnoreCase(rs.getString("uname")) || uname.equalsIgnoreCase(rs.getString("email"))) { 
    HttpSession session = request.getSession(true); 
    session.setAttribute("uname", rs.getString(1)); 

    ServletContext context = getServletContext(); 
    RequestDispatcher dispatcher = context 
        .getRequestDispatcher("/profile"); 
    dispatcher.forward(request, response); 
    } 

herhangi biri bana bu sorunu çözmek için yardımcı

select uname, email from passmanager where pass=? 
+0

üzgünüm ben unuttum. Ama şimdi de sorun aynı kalır ... Bence sorun hazırlanır ifade – ajay

0

Bu hata, sonuç alanında bulunmayan bir ada (rs.getString ("uname") adında bir dosya almaya çalıştığınızda görüntülenir.

Ve dediğim gibi, e-posta alanını (rs.getString ("email") ile) almaya çalışıyorsunuz ve sorguda değil, bu sizin hatanız.

Bu konuşmayı, rs.getString yerine (rs.getString ("uname") dizesinin sonunda bir boşlukla bir alan elde etmeye çalışırken bir uygulamada aynı hatayı aldığım için buldum. .

) "uname" Ve ben sorgudan başlamıştı alan için doğru adı kullanılarak tamir umarım faydalı olacağını umut

;.!)

İlgili konular