2012-06-02 4 views
0
Statement st=null; 
ResultSet rs=null; 
Connection con=null; 

String sql="select * from employee;"; 

try{ 

       con= new Database().getMySqlConnection(); 
       st=con.prepareStatement(sql); 
       rs=st.executeQuery(sql); 

    while(rs.next()) 
    { 
if(rs.getInt("id")!=-1)  
{ 
    %> 
<tr><td align="center"><%=rs.getInt("id")%></td> 
<td align="center"><%=rs.getString("name")%></td> 
    <td align="center"><%=rs.getInt("salary")%> </td> 
    <td align="center"><%=rs.getString("Designation") %></td> 
} 
    else 
    { 

     out.println("table is empty"); 
    } 
    } 
    } 


       catch (SQLException ex) { 
        System.out.println(ex.getMessage()); 
       } 

이 프로그램에서 테이블에 데이터를 표시하려면 비어 있지 않은지 테이블에서 검색하고 테이블이 비어 있으면 메시지를 표시하거나 테이블이 비어있는 상태로 인쇄하십시오. 그러나 테이블에 데이터가있을 때 메시지가 제대로 표시되지 않습니다.
그러나 테이블이 비어 있으면 오류 메시지가 표시되지 않습니다.테이블이 비어 있습니다.

인터넷에서 많은 예제를 보았고 wasNull() 메서드, islast(), iffirst() 메서드 등을 수행했지만 여전히 문제가 지속됩니다.

Plz가 솔루션을 제안합니다. 이 프로그램은 java에 있습니다.

+0

는 이미 선택의 계산 방법을 사용 ,,,하지만 –

+0

-1 ....... 작동하지 않습니다 - 우리에게 코드를 포맷하고 적절하게 질문을 작성하는 의례 마십시오. 그들은 학교에서 구두점을 가르쳐 주었습니까? 그들은 프로그래밍 수업에서 들여 쓰기에 대해 가르쳐 봤습니까? 이 예는 정말로 끔찍합니다. –

답변

3

빈 테이블 문은 while 문 외부에 있어야합니다. 깃발을 사용하십시오.

while(rs.next()) 
{ 
    flag = 1; 
    if(rs.getInt("id")!=-1)  
     { 
     <tr><td align="center"><%=rs.getInt("id")%></td> 
     <td align="center"><%=rs.getString("name")%></td> 
     <td align="center"><%=rs.getInt("salary")%> </td> 
     <td align="center"><%=rs.getString("Designation") %></td> 
     } 
} 
if (flag == 0) 
    out.println("Table is empty"); 

next()method 한번에 한 행씩 앞으로 커서를 이동 유지한다. while 루프를 입력하면 테이블에 무언가가 있음을 의미합니다.

+0

멍청한 .... 지금은 ................ –

+0

친절하게 upvote하고 답변을 수락 그것의 작동 ........... thnx 많이. :-) –

+0

나는 평판이 없다. –

2

메시지가 while 루프에 있습니다. rs.next보다 테이블에 데이터가 없으면 false를 반환합니다. 루프 밖으로 msg를 이동해야합니다.

ither 당신은 값이 바뀌면서 어떤 데이터가 반환되었는지 찾거나 if-else & do-while의 조합을 사용할 수있는 부울 var를 사용할 수 있습니다.

if(rs.next()){ 
    do{ 
     //process data 
     }while(rs/next); 
}else{ 
    //Print MSG 
} 
+0

선생님 사이의 차이점은 무엇입니까 (rs.next)와 while (rs.next) ..... 나는 부울을 확인하고 nextnot이 테이블에서 발견 될 때까지 실행하는 것이 좋다고 생각합니다. ?????? ? –

+0

없음. n은 특정 조건에 따라 코드 블록을 실행하는 옵션을 제공하면 true 또는 false입니다. while (rs.next) - while 코드는 실행되지 않습니다. if의 경우 rs.next가 false를 반환하면 else 블록이 실행됩니다. –

관련 문제