Új hozzászólás Aktív témák

  • trisztan94

    őstag

    válasz Alexios #5528 üzenetére

    Bocsi a megkésett válaszért.

    Na, igazából az a helyzet, hogy egy .sqlite fájlt akarok deploy-olni az xap-ban.
    Eddig futásidőben hoztam létre az adatbázist, de most megváltozott valami, ezért már külső fájlból kell belerakni. A futásidőben való létrehozás nyilvánvalóan az izolált tárhelyre hozta létre az adatbázist, és pontosan ugyanez kellene nekem.

    Ezt csináltam:
    Behúztam az adatbázist a solutionbe. (Databases/db.sqlite az útvonal)
    Jobb klikk rá, Properties->
    Build Action -> Content
    Copy to output directory -> Copy always

    Na most, ha jól tudom, ez csak olvasható tárhelyre fogja rakni, tehát írni nem lehet majd. Ami nem jó, ezért ezzel a kóddal, amikor indul app átmásolom az izolált tárhelyre, ahol írni és olvasni is lehet:

    public void CopyDatabaseToIsolatedStorage()
    {
    // Obtain the virtual store for the application.
    IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();

    // Create a stream for the file in the installation folder.
    using (Stream input = Application.GetResourceStream(new Uri("Databases/db.sqlite", UriKind.Relative)).Stream)
    {
    // Create a stream for the new file in the local folder.
    using (IsolatedStorageFileStream output = iso.CreateFile("db.sqlite"))
    {
    // Initialize the buffer.
    byte[] readBuffer = new byte[4096];
    int bytesRead = -1;

    // Copy the file from the installation folder to the local folder.
    while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
    {
    output.Write(readBuffer, 0, bytesRead);
    }
    }
    }

    }

    Ez van a MainPage osztály konstruktorában:
    if (!database.IsDbPresent().Result) // Ez egy bool-t ad vissza
    {
    Debug.WriteLine("Database file not found in Isolated Storage. Copying...");
    database.CopyDatabaseToIsolatedStorage();
    }

    Na most az a probléma, hogy ez szépen működik, amíg debug módban emulatorban, vagy telefonon tesztelem. Onnantól kezdve, hogy lehúzom a telefont a gépről és később indítom el, valamiért nem tudja olvasni az adatbázist.

    Hogyan kell ezt "rendesen" megoldani? Van ennek egy bevált módszere? :R

    https://heureka-kreativ.hu

Új hozzászólás Aktív témák