2012-10-10 3 views
2

로컬 데이터베이스를 사용하려면 Sqlite를 사용하고 있습니다. 나는 명령 행 도구로 데이터베이스를 만들고 sqlite admin으로 테이블을 만든다.C#, System.Data.Sqlite 및 N 문자

나는 테이블 중 하나에 대한 정보로서 "Ñ"문자로 등록되어 있습니다. 이 레지스터는 sqlite admin에서 실행되는 SQL 문에 의해 insterted됩니다.

sqlite admin에서 select를 수행하면 "Ñ"문자가 올바른지 알 수 있지만 엔티티 프레임 워크와 라이브러리 System.Data.Sqlite를 사용하면받은 문자열이 "?" 또는 다른 이상한 문자 (나는 UTF8, UTF7, ASCII, UTF32를 사용하려고 노력했지만 ...)하지만 모든 경우에 이상한 문자가 나타납니다.

데이터베이스에 모든 문자가 올바른 것으로 보이는 이유는 무엇입니까? System.Data.Sqlite 라이브러리에 버그가있을 가능성이 있습니까?

감사합니다. Daimoroc.

+3

연결 문자열에 어떤 인코딩을 설정 했습니까? – dash

+3

열 정의에 nvarchar를 사용할 수 있습니까? 이렇게하면 내용은 자동으로 UTF-16이되고 .NET 문자열은 UTF가됩니다. –

+1

sqlite admin에 버그가있을 수도 있습니다. 다른 도구로 시도해 볼 수 있습니까? –

답변

1

글쎄, 나는 다른 sqlite 관리자 및 sqlite 스파이 관리자를 사용하고 문자는 "?"로 표시되므로 등록자를 업데이트하고이 관리자 (sqlite 스파이)에서 올바른 것입니다.

그런 다음 C# 응용 프로그램을 다시 실행합니다. 이제 문제는 sqlite 관리자가 SQL 문을 사용할 때 문자열에 이러한 종류의 문자가 있으면 올바르게 작동하지 않는다는 것입니다.

그래서 해결책은 다른 sqlite 관리자를 찾는 것입니다. 예를 들어, sqlite 스파이,이 경우에는 잘 작동합니다.

감사합니다. Daimroc.