Я пытаюсь создать внешнюю базу данных sqlite, я следую и тестирую текстовые файлы на съемном носителе и работает. Итак, я пытаюсь создать базу данных в съемном Хранение:Windows 10 removeableStorage SQLite database
public static async Task<String> CreateDatabase(string name)
{
var folder = await FindRemovableStorage();
if (folder != null)
{
var file = await folder.CreateFileAsync(name, CreationCollisionOption.ReplaceExisting);
if(file!=null)
{
var ret = $"{folder.Name}{file.Name}";
return ret;
}
}
return null;
}
public async void ThirdCase()
{
var path =await DataLoggerService.CreateDatabase("db.dat");
var connection = new SQLite.Net.SQLiteConnection(new SQLitePlatformWinRT(), path); //Cannot Open
}
Я проверяю на рабочем столе, и возвращает CannotOpen. Кто-нибудь создал базу данных из типичной локальной папки?
Более подробности того, что я сделал здесь: datalogger
Когда я закончу я хочу реализовать в Raspberry Pi, theorically тот же код для Windows, IoT или есть какие-либо изменения в SQLitePlatformWinRT?
EDITION: Больше анализов:
Я проверил базу данных с типичным, работает как шарм:
Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "db.dat");
Я хотел создать базу данных во внешнем хранилище, для этого мне нужно для добавления следующих этапов:
1.- Добавить возможность использования removeablestorage. 2.- Добавить файл типа ассоциации для того, чтобы иметь права управлять такого рода файлов
(подробности здесь: http://expediteapps.com/blog/data-logger-with-windows-10-iot-in-progress/)
Итак я изменить путь к съемному пути хранения, как «E: \ db.dat ", и он всегда сообщает CannotOpen.
SQLite библиотека PCL Он прибывает сюда:
SQLiteApiWinRT.cs
public Result Open(byte[] filename, out IDbHandle db, int flags, IntPtr zvfs)
{
Sqlite3DatabaseHandle internalDbHandle;
var ret = (Result)SQLite3.Open(filename, out internalDbHandle, flags, zvfs);
db = new DbHandle(internalDbHandle);
return ret;
}
Где ОТКРЫТО
[DllImport("sqlite3", EntryPoint = "sqlite3_open_v2", CallingConvention = CallingConvention.Cdecl)]
общественности статической ехЬегп Результат Open (байт [] имя файла, из IntPtr db, int flags, IntPtr zvfs);
где я использую:
SQLite.UAP.2015, Version=3.8.10
MORE Aditions:
Я проверил эту библиотеку https://www.nuget.org/packages/SQLitePortable/ и я кончаю в ту же ошибку, так что внутренняя.
И вот где дорога заканчивается, любая помощь?
"Долгое время назад я сделал это очень полную статью Http: // expediteapps .com/blog/storageing-data-with-windows-10-iot/Я действительно вникаю в то, что можно, и в случае, если он не изменился, на данный момент невозможно напрямую использовать базу данных из SDCard, мой вопрос здесь. –
Мне очень нравится ваша статья. В случае, если ANYBODY все еще борется с ее созданием: 'path = Path.Combine (Windows.Storage.ApplicationData.Current.LocalFolder.Path," db.sqlite "); conn = новый SQLite.Net.SQLiteConnection (новый SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), путь); conn.CreateTable(); ' –
Kyagos