2016-06-26 2 views
4

У меня есть база данных SQLite из другого проекта, и я хочу использовать ее в приложении UWP. Но я не знаю, как импортировать эту базу данных в проект и!Как использовать предварительно спроектированный SQLite в проекте UWP?

+0

Пожалуйста, примите [тур] и прочитайте [ask] специально. – IInspectable

+0

@HenkHolterman: Как и многие другие вопросы, которые проголосовали за то, чтобы быть слишком широкими, хотя они тоже несут ответственность. Этот вопрос отсутствует. С какой частью ОП сталкивается с трудностями? Какие симптомы они наблюдали? У них просто возникают трудности с копированием файла? Проблемы с интеграцией его в процесс сборки? Требуется ли обновление схемы? Должна ли копирование символов копироваться или это будет время для переключения на другое? Все эти вопросы были бы хорошим вопросом для SO сами по себе. Этот ОП не спрашивал об этом. – IInspectable

+0

Вы уже знаете, как использовать SQlite в универсальном приложении, но просто не знаете, как скопировать файл базы данных? Какой пакет nuget SQLite вы хотите использовать? Или на самом деле у вас есть только файл базы данных, и вы хотите узнать все остальное? –

ответ

3

Я могу создать новую базу данных и использовать ее, но я не знаю, как скопировать файл базы данных из проекта. Я использую пакет SQLite.Net-PCL nuget.

Для доступа к файлу существует два местоположения, доступ к которым доступны всем приложениям. Подробности просьба обращаться к file-access-permissions.

Первый: Application install directory. Как сказал @Henk Holterman, вы можете импортировать существующий файл базы данных в свой проект, щелкнув правой кнопкой мыши по одной папке и выбрав Add-> Existing item, чтобы добавить файл базы данных в проект. Обратите внимание, что для свойства файла Build action необходимо установить значение content. Подробности см. На следующем рисунке. Sun.db in Assets folder

Предположим, у вас уже есть файл базы данных Sun.db, добавленный в папку «Активы», и теперь вы можете подключиться к нему следующим кодом (используйте пакет SQLite.Net-PCL Nuget Package).

path = Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, @"Assets\Sun.db"); 
    using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path)) 
    { 
    } 

Но эта папка только для чтения. Другое местоположение - Application data locations, которое может читать/писать. Вы можете скопировать файл базы данных из каталога установки в каталог данных приложения для использования. Следующий пример кода предназначен для подключения файла базы данных, который находится в локальной папке.

StorageFile file; 
    try 
    { 
     file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Sun.db"); 
    } 
    catch 
    { 
     StorageFile Importedfile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Sun.db")); 
     file = await Importedfile.CopyAsync(Windows.Storage.ApplicationData.Current.LocalFolder); 
    } 
    path = file.Path; 

    using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path)) 
    { 
     conn.CreateTable<User>(); 
    } 
Смежные вопросы