Искаженный текст в uniqueidentifier в SQLite - PullRequest
3 голосов
/ 21 сентября 2010

Привет, дорогие все,

У меня проблема с использованием Sqlite в .Net / visual Studio, и мне очень нужна ваша помощь.

Проблемаis:

Я исказил текст в столбце ID с типом данных «uniqueidentifier» в базе данных Sqlite при просмотре данных таблицы с помощью некоторых инструментов с графическим интерфейсом (я пробую разные инструменты)хорошо, когда извлекаются данные в коде .net, но просто заставляет меня нервничать.

Более подробная информация здесь:

  1. Когда я открываютаблица с Sqlite Administrator, он показывает искаженный текст в столбце ID.

  2. НО, когда я использую визуальный дизайн, указанный адаптер данных таблицы или общий SqliteDataAdaptor для извлечения таблицы, столбец ID показывает нормально.

Вот как я создаю искаженные данные.

  1. Сначала я перетащил таблицу в дизайнер визуальных студийных данных.через обозреватель сервера, используя драйвер подключения Sqlite dll.

  2. Moизменить данные программно, а затем использовать визуально разработанный адаптер данных для его обновления.

Мои подозрения

Я подозреваю, что SqliteDataAdaptor (или адаптер .net внутри?) Вставляет в базу данных кодированную строку UNICODE.Таким образом, при получении данных через адаптер, он будет отображаться нормально.Но инструменты GUI не могут обрабатывать юникод, поэтому он показывает искаженный текст?

Последний

Я не знаю, есть ли в Sqlite тип данных «uniqueidentifier»база данных.Но в файле базы данных, который я получил от других колледжей, он показывает тип как «uniqueidentifier», и кажется, что он работает.

Заранее всем спасибо.

Приветствия

1 Ответ

5 голосов
/ 21 сентября 2010

Неважно, я разобрался с работой.

Похоже, что Sqlite хранит Guid как двоичные данные по умолчанию. И .net хочет, чтобы это была строка.

Таким образом, установка строки подключения к базе данных sqlite со следующими настройками решит проблему:

Источник данных = somefile; BinaryGUID = False;

см .: http://www.connectionstrings.com/sqlite

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...