2016-08-02 8 views
0
try 
        { 
         st=cn.createStatement(); 
         String strUser=""; 
         rs=st.executeQuery("SELECT * FROM chsl_db WHERE name='"+nametxt.getText()+"'"); 
         while(rs.next()) 
         { 
          strUser=rs.getString(1); 
         } 
         if(strUser.equals(nametxt.getText())) 
         { 
         st= cn.createStatement(); 
         rs = st.executeQuery("SELECT * FROM chsl_db WHERE name ='" + nametxt.getText() + "'"); 
         while (rs.next()) 
         { 
          titletxt.setText(rs.getString(1)); 
          nametxt.setText(rs.getString(2)); 
          flatnum.setText(rs.getString(3)); 
          areatxt.setText(rs.getString(4)); 
          emailtxt.setText(rs.getString(5)); 
          deletebutton.setEnabled(true); 
         } 

         st.close(); 
         } 
          else 
          { 
           JOptionPane.showMessageDialog(null,"No Data Found!","Security Warning",JOptionPane.WARNING_MESSAGE); 
            } 

            } 

    catch(SQLException s) 
    { 
     System.out.println("No record found!\n\n\n"); 
     System.out.println("SQL Error" + s.toString() + " " + s.getErrorCode() + " " + s.getSQLState()); 
    } 
catch(Exception x) 
    { 
     System.out.println("Error" + x.toString()+" " + x.getMessage()); 
    } 

}       

데이터베이스로 MySql Workbench를 사용하십시오. 데이터베이스에 데이터 삽입이 작동하지만 동일한 데이터를 검색 할 수 없습니다. "No Data Found!"오류가 발생합니다. 연결과 확인을 확인했습니다. 다음은 연결에 사용 된 코드입니다. 도와주세요 !!MySql 데이터베이스에서 Jtextfield로 데이터를 가져올 수 없습니다.

try 
    { 
     Class.forName("java.sql.Driver"); 
     cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/avinash?useSSL=false","root","password"); 
    } 
      catch(ClassNotFoundException e) 
      { 
     System.err.println("Failed to load driver"); 
     e.printStackTrace(); 
    } 
    catch(SQLException e) 
      { 
     System.err.println("Unable to connect"); 
     e.printStackTrace(); 
    } 
+0

스택 오버플로 질문에 대한 코드의 형식을 지정하는 데 많은 노력을 기울이십시오. 지금은 들쭉날쭉하게 들여다 보입니다. 그런 다음,'PreparedStatement'와 매개 변수화 된 SQL을 사용하십시오. 현재의 접근 방식은 SQL 주입 공격과 변환 실패에 취약합니다. –

+0

'strUser'는 항상 db의 마지막 행의 이름을 포함합니다. –

+0

또한 SQL 인젝션을 방지하기 위해 준비된 문을 사용해야합니다. –

답변

0

st=cn.createStatement(); 다음 줄 이후에 추가하십시오.

cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/avinash?useSSL=false","root","password"); 

나는 당신이해야 할 일에 들어 가지 않습니다.

는하지만 난 그 잠시 동안 내가 넷빈즈를 사용하지 않는 한

try { 
    nm = nametxt.getText(); 
if(nm != '') { 
    rs = st.executeQuery("SELECT * FROM chsl_db WHERE name ='" + nm + "'"); 
while (rs.next()) { 
    titletxt.setText(rs.getString(1)); 
    nametxt.setText(rs.getString(2)); 
    flatnum.setText(rs.getString(3)); 
    areatxt.setText(rs.getString(4)); 
    emailtxt.setText(rs.getString(5)); 
    deletebutton.setEnabled(true); 
} 
st.close(); 
} 
else { 
JOptionPane.showMessageDialog(null,"No Data Found!","Security Warning",JOptionPane.WARNING_MESSAGE); 
} 
} 

것 처음에 생각합니다. 그래서 내가 틀렸다면 말해.

+0

실제로 실수는 하나의 number.In strUser = rs에있었습니다. .getString (1); 1 대신 2이어야합니다. –

관련 문제