2011-10-09 4 views
3
System.Data.SQLite가 SQL 구문 오류를 만났을 때 SQLiteExcptionMessage 속성이 제공하는 유일한 관련 정보는 SQL 오류의 이름과 그 근처의 키워드/기호입니다. 오류에 대한 더 많은 정보를 얻을 수있는 방법이 있습니까? 즉, 오류가 발생한 CommandText 문자열의 정확한 위치 (또는 범위)?

System.Data.SQLite.SQLiteException에서 추가 정보 얻기

SQLiteException에서 가져올 필요는 없습니다. SQLiteCommand에서 정보를 얻거나 SQLiteConnection을 사용하면 도움이됩니다.

답변

1

이 예외는 SQL 문의 구문 오류로 인해 발생합니다. C# 자체가 더 많은 정보를 제공 할 수는 없습니다. 그냥 SQLite에 쿼리를 전달합니다. 그런 다음 SQLite는 쿼리를 구문 분석하고 구문 오류를 생성합니다. 이 오류는 C#에 의해 catch되어 SQLiteException에 패키지화되어 있습니다. 따라서 C#에서 더 많은 정보를 얻을 수는 있지만 SQLite는 그렇지 못하다고 요구하지는 않습니다.

불행히도, 내가 아는 한 (일부 검색 후) SQLite는 더 많은 정보를 제공 할 수 없습니다. 내가 찾은 유일한 옵션은 SQLite Developer이라는 프로그램이었습니다. 나는 그것을 시도하지는 않았지만 (다른 많은 기능들 외에도) 구문 검사기를 가지고 있다고 말한다. 해당 페이지에있는 해당 검사기의 스크린 샷은 SQL 문의 구문 오류에 밑줄을 표시합니다. 유료 버전과 프리웨어 라이트 버전이 있습니다. 어느 것이 충분한 지 스스로 알아봐야 할 것입니다.

+0

C#에서 정보를 얻을 것으로 예상하지 못했습니다. 아마도 System.Data.SQLite가 어딘가에 정보를 저장하고 있다고 생각했습니다. 어쨌든 고마워! –

+0

글쎄, 난 주로 SQLite에서 나를보다 더 나은 사람이 당신을 도울 수 있지만 내가 그것을 의지하지 않을 TSQL에서 주로 작동합니다. 거대한 SQL 문 디버깅을 때로는 많은 '재미'로 만드는 TSQL과 같은 문제입니다. –