Monotouch - Присоединение базы данных Sqlite в проекте Monotouch и развертывание на iPad - PullRequest
1 голос
/ 28 мая 2011

Все примеры кода, которые я нашел до сих пор относительно использования базы данных Sqlite в приложении для iPad / iPhone, используют сценарии для создания базы данных после развертывания приложения.

Но возможно ли создать базу данных в одно касание, построить структуру, даже предварительно заполнить ее данными и развернуть вместе с приложением для iPad?

Если это так, каково расположение базы данных, как мне построить Sqlite Connection? На данный момент я использую следующее:

new SqliteConnection("Data Source=" + DatabasePath);

Где

public static String DatabasePath {
    get {
        string documents = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
        return Path.Combine (documents, "MyDB.db");
    }
}

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

Для людей, использующих Monotouch, я решил эту проблему следующим образом:

  1. Создание базы данных Sqlite с помощью sqliteman
  2. В monodevelop щелкните правой кнопкой мыши Project> Add> AddФайлы
  3. Выберите созданную базу данных sqlite и нажмите Открыть
  4. Нажмите Копировать в диалоговом окне с предупреждением
  5. Щелкните правой кнопкой мыши на базе данных, которую вы только что добавили> Действие сборки> Содержимое

Затем все, что вам нужно сделать, - это создать простой метод для копирования базы данных в папку назначения, например Documents:

public static void CopyDatabase(String destinationPath)
{
    String path = NSBundle.MainBundle.PathForResource("MyDB", "db");
    File.Copy(path, destinationPath);
}

Где destinationPath в моем случае - это указанный путьвыше в вопросе: Здесь .Очевидно, что на производстве вам понадобится какой-то механизм проверки того, не существует ли БД, чтобы вы не перезаписывали файл базы данных.

Надеюсь, это поможет.

2 голосов
/ 28 мая 2011

Вы можете предварительно создать свою базу данных, скопировать ее в комплект приложения , и (если она доступна только для чтения) вы можете получить к ней доступ напрямую из комплекта приложения в любое время. Если вам нужен доступ для записи, вы можете скопировать предварительно созданный файл в другой каталог , а затем изменить его оттуда.

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