다양한 소스의 다양한 문서의 구조화되지 않은 텍스트를 처리하고 있습니다. SQL Server Compact Edition 3.5를 사용하고 있습니다.SQL CE가 유니 코드 값을 변경하는 이유는 무엇입니까?
고유 한 단어가있는 조회 테이블을 만들고 ID 열을 ID 열로 참조합니다. 내가 겪고있는 문제는 유니 코드 (unicode) 인 것 같다.
"정의"라는 용어를 삽입하면 이미 "정의"가있는 행에 대해 고유 한 키 제약 조건이 적용됩니다. 두 사람을 면밀히 살펴보면 내가 삽입하는 값이 'f'와 'i'가 아니라 실제로 하나의 문자라는 사실을 알 수 있습니다. 그러나 SqlCe는이를 'f'및 'i'로 변환하려고합니다. 한 단어는 10 자, 다른 단어는 11 자이지만 SqlCe는이를 동일한 것으로 간주합니다.
테이블 열은 nvarchar입니다.
매개 변수를 nvarchar로 지정했습니다.
쿼리는 매우 간단하다 : 나는 또한 시도했다
cmd.CommandText = "INSERT INTO dictionary(lemma) VALUES(?);";
DbParameter lemma = cmd.CreateParameter();
cmd.Parameters.Add(lemma);
for (int i = 0; i < terms.Count; i++)
{
lemma.Value = terms[i].Key;
cmd.ExecuteNonQuery();
}
:
cmd.CommandText = "INSERT INTO dictionary(lemma) VALUES(?);";
SqlCeParameter lemma = new SqlCeParameter("lemma", SqlDbType.NVarChar);
cmd.Parameters.Add(lemma);
for (int i = 0; i < terms.Count; i++)
{
lemma.Value = terms[i].Key;
cmd.ExecuteNonQuery();
}
내가 삽입하고있는 무슨에서 '파이'문자에 대한 바이트 (1) (251)이며,로 날엔의 값 반면
{byte[20]}
[0]: 100
[1]: 0
[2]: 101
[3]: 0
[4]: 1
[5]: 251
[6]: 110
[7]: 0
[8]: 105
[9]: 0
[10]: 116
[11]: 0
[12]: 105
[13]: 0
[14]: 111
[15]: 0
[16]: 110
[17]: 0
[18]: 115
[19]: 0
110 0 다음을 참조, 'I'는 105 0 'F'에 대향
{byte[22]}
[0]: 100
[1]: 0
[2]: 101
[3]: 0
[4]: 102
[5]: 0
[6]: 105
[7]: 0
[8]: 110
[9]: 0
[10]: 105
[11]: 0
[12]: 116
[13]: 0
[14]: 105
[15]: 0
[16]: 111
[17]: 0
[18]: 110
[19]: 0
[20]: 115
[21]: 0
가 어떻게 제대로 값을 삽입하기 위해 SQL 서버 CE를 얻을 수있다 (하나의 SQLCE는 고유 키의 위반으로보고있다)베이스상의?
편집 : 위에 표시된 코드를 수정했습니다.
nvarchar 데이터 형식입니까? – Holystream
삽입 된 값이 C# 문자열에서옵니다. – McAden