2011-02-14 7 views
1

레코드를 읽고 각 레코드에 대해 코드를 실행하려는 SQLite 데이터베이스가 있습니다. 다음과 같이 내가 내부의 시도 캐치와 while 루프를 사용하고While 루프 내에서 캐치 시도

...

코드는 다음과 같습니다 -

  result = slcom.ExecuteReader() 
      'TODO: There is a problem with this while loop whereby if an ex is caught the connection 
      '  to the database is closed. 
      While result.Read 
       Try 

         < do some stuff here > 

       Catch ex As Exception 
        incrementFailoverCount(result("fid")) 
       End Try 
      End While 
      result.Close() 

try 블록이 입력되면 문제는,이며 전입니다 잡히면 while 루프의 다음 반복이 실패합니다. 예를 들어 ex가 잡히면 SQLite 데이터베이스에 대한 연결이 닫혀있는 것처럼 보입니다. 연결 속성이 열려 있음을 나타내지 만.

어떤 아이디어 ???

당신은 부울을 반환하는 기능으로 한번에 캐치 내의 모든 코드를 이동하고

이 함수의 반환 값이 즉 성공의 표시 또는 실패한 작업, 예외로 봉사 기능의 결과로하는 ByRef 인수를 할 수

+0

실제 예외는 무엇입니까? –

+0

처음 코드가 루프에 들어가면 괜찮습니다. 그런 다음 예외가 호출되면 다음 번에 루프가 반복되고 result.Read는 '연결이 닫혔습니다. 문이 종료되었습니다.'오류를 생성합니다. –

+1

DataTable에 데이터를 미리로드하여 정렬했습니다. –

답변