Ukládání dat v místní databázi SQLite.NETStore data in a local SQLite.NET database

Stažení ukázky stažení ukázkyDownload Sample Download the sample

V tomto rychlém startu se dozvíte, jak:In this quickstart, you will learn how to:

  • Místní uložení dat v databázi SQLite.NET.Store data locally in a SQLite.NET database.

Tento rychlý Start vás provede tím, že ukládá data do místní databáze SQLite.NET z Xamarin.Forms aplikace prostředí.The quickstart walks through how to store data in a local SQLite.NET database, from a Xamarin.Forms Shell application. Konečná aplikace je zobrazena níže:The final application is shown below:

Stránka  poznámek na stránces  poznámkamiNotes Page Note Entry Page

PožadavkyPrerequisites

Před pokusem o provedení tohoto rychlého startu byste měli úspěšně dokončit předchozí Průvodce rychlým startem .You should successfully complete the previous quickstart before attempting this quickstart. Případně si stáhněte předchozí ukázku pro rychlý Start a použijte ji jako výchozí bod pro tento rychlý Start.Alternatively, download the previous quickstart sample and use it as the starting point for this quickstart.

Aktualizace aplikace pomocí sady Visual StudioUpdate the app with Visual Studio

  1. Spusťte Visual Studio a otevřete řešení poznámky.Launch Visual Studio and open the Notes solution.

  2. V Průzkumník řešení klikněte pravým tlačítkem na řešení poznámky a vyberte Spravovat balíčky NuGet pro řešení...:In Solution Explorer, right-click the Notes solution and select Manage NuGet Packages for Solution...:

    Správa balíčků NuGet

  3. Ve Správci balíčků NuGet vyberte kartu Procházet a vyhledejte balíček NuGet -net-PCL NuGet.In the NuGet Package Manager, select the Browse tab, and search for the sqlite-net-pcl NuGet package.

    Upozornění

    Existuje mnoho balíčků NuGet s podobnými názvy.There are many NuGet packages with similar names. Správný balíček má tyto atributy:The correct package has these attributes:

    Bez ohledu na název balíčku je možné tento balíček NuGet použít v projektech .NET Standard.Despite the package name, this NuGet package can be used in .NET Standard projects.

    Ve Správci balíčků NuGet vyberte správný balíček SQLite-NET-PCL , zaškrtněte políčko projekt a kliknutím na tlačítko instalovat ho přidejte do řešení:In the NuGet Package Manager, select the correct sqlite-net-pcl package, check the Project checkbox, and click the Install button to add it to the solution:

    Vybrat SQLite-NET-PCL

    Tento balíček bude použit k začleňování databázových operací do aplikace a přidá se do každého projektu v řešení.This package will be used to incorporate database operations into the application, and will be added to every project in the solution.

    Zavřete Správce balíčků NuGet.Close the NuGet Package Manager.

  4. V Průzkumník řešení v projektu poznámky otevřete Note.cs ve složce modely a nahraďte existující kód následujícím kódem:In Solution Explorer, in the Notes project, open Note.cs in the Models folder and replace the existing code with the following code:

    using System;
    using SQLite;
    
    namespace Notes.Models
    {
        public class Note
        {
            [PrimaryKey, AutoIncrement]
            public int ID { get; set; }
            public string Text { get; set; }
            public DateTime Date { get; set; }
        }
    }
    

    Tato třída definuje Note model, který bude uchovávat data o každé poznámce v aplikaci.This class defines a Note model that will store data about each note in the application. IDVlastnost je označená PrimaryKey AutoIncrement atributem a, aby se zajistilo, že každá Note instance v databázi SQLite.NET bude mít jedinečné id, které poskytuje sqlite.NET.The ID property is marked with PrimaryKey and AutoIncrement attributes to ensure that each Note instance in the SQLite.NET database will have a unique id provided by SQLite.NET.

    Uložte změny do Note.cs stisknutím kláves CTRL + S.Save the changes to Note.cs by pressing CTRL+S.

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  5. V Průzkumník řešení přidejte do projektu poznámky novou složku s názvem data .In Solution Explorer, add a new folder named Data to the Notes project.

  6. V Průzkumník řešení v projektu poznámky přidejte do složky data novou třídu s názvem NoteDatabase .In Solution Explorer, in the Notes project, add a new class named NoteDatabase to the Data folder.

  7. V NoteDatabase.cs nahraďte existující kód následujícím kódem:In NoteDatabase.cs, replace the existing code with the following code:

    using System.Collections.Generic;
    using System.Threading.Tasks;
    using SQLite;
    using Notes.Models;
    
    namespace Notes.Data
    {
        public class NoteDatabase
        {
            readonly SQLiteAsyncConnection database;
    
            public NoteDatabase(string dbPath)
            {
                database = new SQLiteAsyncConnection(dbPath);
                database.CreateTableAsync<Note>().Wait();
            }
    
            public Task<List<Note>> GetNotesAsync()
            {
                //Get all notes.
                return database.Table<Note>().ToListAsync();
            }
    
            public Task<Note> GetNoteAsync(int id)
            {
                // Get a specific note.
                return database.Table<Note>()
                                .Where(i => i.ID == id)
                                .FirstOrDefaultAsync();
            }
    
            public Task<int> SaveNoteAsync(Note note)
            {
                if (note.ID != 0)
                {
                    // Update an existing note.
                    return database.UpdateAsync(note);
                }
                else
                {
                    // Save a new note.
                    return database.InsertAsync(note);
                }
            }
    
            public Task<int> DeleteNoteAsync(Note note)
            {
                // Delete a note.
                return database.DeleteAsync(note);
            }
        }
    }
    

    Tato třída obsahuje kód pro vytvoření databáze, načtení dat z ní, zápis dat do ní a odstranění dat z ní.This class contains code to create the database, read data from it, write data to it, and delete data from it. Tento kód používá asynchronní rozhraní API SQLite.NET, která přesouvají databázové operace na vlákna na pozadí.The code uses asynchronous SQLite.NET APIs that move database operations to background threads. Konstruktor třídy NoteDatabase kromě toho přijímá jako argument cestu k souboru databáze.In addition, the NoteDatabase constructor takes the path of the database file as an argument. Tuto cestu bude poskytovat App Třída v dalším kroku.This path will be provided by the App class in the next step.

    Uložte změny do NoteDatabase.cs stisknutím kláves CTRL + S.Save the changes to NoteDatabase.cs by pressing CTRL+S.

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  8. V Průzkumník řešení otevřete v projektu poznámky položku App. XAML a dvakrát klikněte na položku App.XAML.cs .In Solution Explorer, in the Notes project, expand App.xaml and double-click App.xaml.cs to open it. Pak existující kód nahraďte následujícím kódem:Then replace the existing code with the following code:

    using System;
    using System.IO;
    using Notes.Data;
    using Xamarin.Forms;
    
    namespace Notes
    {
        public partial class App : Application
        {
            static NoteDatabase database;
    
            // Create the database connection as a singleton.
            public static NoteDatabase Database
            {
                get
                {
                    if (database == null)
                    {
                        database = new NoteDatabase(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Notes.db3"));
                    }
                    return database;
                }
            }
    
            public App()
            {
                InitializeComponent();
                MainPage = new AppShell();
            }
    
            protected override void OnStart()
            {
            }
    
            protected override void OnSleep()
            {
            }
    
            protected override void OnResume()
            {
            }
        }
    }
    

    Tento kód definuje Database vlastnost, která vytvoří novou NoteDatabase instanci jako typ singleton, přičemž předá název souboru databáze jako argument NoteDatabase konstruktoru.This code defines a Database property that creates a new NoteDatabase instance as a singleton, passing in the filename of the database as the argument to the NoteDatabase constructor. Výhodou vystavení databáze jako jednoúčelové je to, že se vytvoří jedno připojení k databázi, které zůstává otevřené po dobu běhu aplikace, takže není nutné při provádění každé databázové operace otevírat a zavírat soubor databáze.The advantage of exposing the database as a singleton is that a single database connection is created that's kept open while the application runs, therefore avoiding the expense of opening and closing the database file each time a database operation is performed.

    Uložte změny do App.XAML.cs stisknutím kláves CTRL + S.Save the changes to App.xaml.cs by pressing CTRL+S.

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  9. V Průzkumník řešení v projektu poznámky rozbalte NotesPage. XAML ve složce zobrazení a otevřete NotesPage.XAML.cs.In Solution Explorer, in the Notes project, expand NotesPage.xaml in the Views folder and open NotesPage.xaml.cs. Pak nahraďte OnAppearing OnSelectionChanged metody a následujícím kódem:Then replace the OnAppearing and OnSelectionChanged methods with the following code:

    protected override async void OnAppearing()
    {
        base.OnAppearing();
    
        // Retrieve all the notes from the database, and set them as the
        // data source for the CollectionView.
        collectionView.ItemsSource = await App.Database.GetNotesAsync();
    }
    
    async void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.CurrentSelection != null)
        {
            // Navigate to the NoteEntryPage, passing the ID as a query parameter.
            Note note = (Note)e.CurrentSelection.FirstOrDefault();
            await Shell.Current.GoToAsync($"{nameof(NoteEntryPage)}?{nameof(NoteEntryPage.ItemId)}={note.ID.ToString()}");
        }
    }    
    

    OnAppearingMetoda naplní CollectionView všechny poznámky uložené v databázi.The OnAppearing method populates the CollectionView with any notes stored in the database. OnSelectionChangedMetoda přejde na a předává NoteEntryPage ID vlastnost vybraného Note objektu jako parametr dotazu.The OnSelectionChanged method navigates to the NoteEntryPage, passing the ID property of the selected Note object as a query parameter.

    Uložte změny do NotesPage.XAML.cs stisknutím kláves CTRL + S.Save the changes to NotesPage.xaml.cs by pressing CTRL+S.

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  10. V Průzkumník řešení rozbalte NoteEntryPage. XAML ve složce zobrazení a otevřete NoteEntryPage.XAML.cs.In Solution Explorer, expand NoteEntryPage.xaml in the Views folder and open NoteEntryPage.xaml.cs. Potom nahraďte LoadNote OnSaveButtonClicked metody, a OnDeleteButtonClicked následujícím kódem:Then replace the LoadNote, OnSaveButtonClicked, and OnDeleteButtonClicked methods with the following code:

    async void LoadNote(string itemId)
    {
        try
        {
            int id = Convert.ToInt32(itemId);
            // Retrieve the note and set it as the BindingContext of the page.
            Note note = await App.Database.GetNoteAsync(id);
            BindingContext = note;
        }
        catch (Exception)
        {
            Console.WriteLine("Failed to load note.");
        }
    }
    
    async void OnSaveButtonClicked(object sender, EventArgs e)
    {
        var note = (Note)BindingContext;
        note.Date = DateTime.UtcNow;
        if (!string.IsNullOrWhiteSpace(note.Text))
        {
            await App.Database.SaveNoteAsync(note);
        }
    
        // Navigate backwards
        await Shell.Current.GoToAsync("..");
    }
    
    async void OnDeleteButtonClicked(object sender, EventArgs e)
    {
        var note = (Note)BindingContext;
        await App.Database.DeleteNoteAsync(note);
    
        // Navigate backwards
        await Shell.Current.GoToAsync("..");
    }
    

    NoteEntryPagePoužívá LoadNote metodu k načtení poznámky z databáze, jejíž ID bylo předáno jako parametr dotazu na stránku a uloží je jako Note objekt na BindingContext stránce.The NoteEntryPage uses the LoadNote method to retrieve the note from the database, whose ID was passed as a query parameter to the page, and store it as a Note object in the BindingContext of the page. Při OnSaveButtonClicked spuštění obslužné rutiny události Note je instance uložena do databáze a aplikace přejde zpět na předchozí stránku.When the OnSaveButtonClicked event handler is executed, the Note instance is saved to the database and the application navigates back to the previous page. Při OnDeleteButtonClicked spuštění obslužné rutiny události se Note instance z databáze odstraní a aplikace přejde zpět na předchozí stránku.When the OnDeleteButtonClicked event handler is executed, the Note instance is deleted from the database and the application navigates back to the previous page.

    Uložte změny do NoteEntryPage.XAML.cs stisknutím kláves CTRL + S.Save the changes to NoteEntryPage.xaml.cs by pressing CTRL+S.

  11. Sestavte a spusťte projekt na každé platformě.Build and run the project on each platform. Další informace najdete v tématu sestavování rychléhostartu.For more information, see Building the quickstart.

    Na NotesPage stisknutím tlačítka Přidat přejděte na NoteEntryPage a zadejte poznámku.On the NotesPage press the Add button to navigate to the NoteEntryPage and enter a note. Po uložení poznámky aplikace přejde zpět na NotesPage.After saving the note the application will navigate back to the NotesPage.

    Pokud chcete sledovat chování aplikace, zadejte několik poznámek s různou délkou.Enter several notes, of varying length, to observe the application behavior. Ukončete aplikaci a znovu ji spusťte, abyste zajistili, že poznámky, které jste zadali, byly uloženy do databáze.Close the application and re-launch it to ensure that the notes you entered were saved to the database.

Aktualizujte aplikaci pomocí Visual Studio pro MacUpdate the app with Visual Studio for Mac

  1. Spusťte Visual Studio pro Mac a otevřete řešení poznámky.Launch Visual Studio for Mac and open the Notes solution.

  2. V oblast řešení klikněte pravým tlačítkem na řešení poznámky a vyberte Spravovat balíčky NuGet...:In the Solution Pad, right-click the Notes solution and select Manage NuGet Packages...:

    Správa balíčků NuGet

  3. V dialogovém okně Spravovat balíčky NuGet vyberte kartu Procházet a vyhledejte balíček NuGet -net-PCL NuGet.In the Manage NuGet Packages dialog, select the Browse tab, and search for the sqlite-net-pcl NuGet package.

    Upozornění

    Existuje mnoho balíčků NuGet s podobnými názvy.There are many NuGet packages with similar names. Správný balíček má tyto atributy:The correct package has these attributes:

    Bez ohledu na název balíčku je možné tento balíček NuGet použít v projektech .NET Standard.Despite the package name, this NuGet package can be used in .NET Standard projects.

    V dialogovém okně Spravovat balíčky NuGet vyberte balíček SQLite-NET-PCL a kliknutím na tlačítko Přidat balíček ho přidejte do řešení:In the Manage NuGet Packages dialog, select the sqlite-net-pcl package, and click the Add Package button to add it to the solution:

    Vybrat SQLite-NET-PCL

    Tento balíček poslouží k začlenění databázových operací do aplikace.This package will be used to incorporate database operations into the application.

  4. V dialogovém okně Vybrat projekty zkontrolujte, zda je zaškrtnuto políčko všechna zaškrtávací políčka a stiskněte tlačítko OK :In the Select Projects dialog, ensure that every checkbox is checked and press the Ok button:

    Přidat balíček do všech projektů

    Tím se balíček NuGet přidá do každého projektu v řešení.This will add the NuGet package to every project in the solution.

  5. V oblast řešení v projektu poznámky otevřete Note.cs ve složce modely a nahraďte existující kód následujícím kódem:In the Solution Pad, in the Notes project, open Note.cs in the Models folder and replace the existing code with the following code:

    using System;
    using SQLite;
    
    namespace Notes.Models
    {
        public class Note
        {
            [PrimaryKey, AutoIncrement]
            public int ID { get; set; }
            public string Text { get; set; }
            public DateTime Date { get; set; }
        }
    }
    

    Tato třída definuje Note model, který bude uchovávat data o každé poznámce v aplikaci.This class defines a Note model that will store data about each note in the application. IDVlastnost je označená PrimaryKey AutoIncrement atributem a, aby se zajistilo, že každá Note instance v databázi SQLite.NET bude mít jedinečné id, které poskytuje sqlite.NET.The ID property is marked with PrimaryKey and AutoIncrement attributes to ensure that each Note instance in the SQLite.NET database will have a unique id provided by SQLite.NET.

    Změny Note.cs uložte kliknutím na soubor > Uložit (nebo stisknutím ⌘ + S).Save the changes to Note.cs by choosing File > Save (or by pressing ⌘ + S).

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  6. V oblast řešení přidejte do projektu poznámky novou složku s názvem data .In the Solution Pad, add a new folder named Data to the Notes project.

  7. V oblast řešení v projektu poznámky přidejte do složky data novou třídu s názvem NoteDatabase .In the Solution Pad, in the Notes project, add a new class named NoteDatabase to the Data folder.

  8. V NoteDatabase.cs nahraďte existující kód následujícím kódem:In NoteDatabase.cs, replace the existing code with the following code:

    using System.Collections.Generic;
    using System.Threading.Tasks;
    using SQLite;
    using Notes.Models;
    
    namespace Notes.Data
    {
        public class NoteDatabase
        {
            readonly SQLiteAsyncConnection database;
    
            public NoteDatabase(string dbPath)
            {
                database = new SQLiteAsyncConnection(dbPath);
                database.CreateTableAsync<Note>().Wait();
            }
    
            public Task<List<Note>> GetNotesAsync()
            {
                //Get all notes.
                return database.Table<Note>().ToListAsync();
            }
    
            public Task<Note> GetNoteAsync(int id)
            {
                // Get a specific note.
                return database.Table<Note>()
                                .Where(i => i.ID == id)
                                .FirstOrDefaultAsync();
            }
    
            public Task<int> SaveNoteAsync(Note note)
            {
                if (note.ID != 0)
                {
                    // Update an existing note.
                    return database.UpdateAsync(note);
                }
                else
                {
                    // Save a new note.
                    return database.InsertAsync(note);
                }
            }
    
            public Task<int> DeleteNoteAsync(Note note)
            {
                // Delete a note.
                return database.DeleteAsync(note);
            }
        }
    }
    

    Tato třída obsahuje kód pro vytvoření databáze, načtení dat z ní, zápis dat do ní a odstranění dat z ní.This class contains code to create the database, read data from it, write data to it, and delete data from it. Tento kód používá asynchronní rozhraní API SQLite.NET, která přesouvají databázové operace na vlákna na pozadí.The code uses asynchronous SQLite.NET APIs that move database operations to background threads. Konstruktor třídy NoteDatabase kromě toho přijímá jako argument cestu k souboru databáze.In addition, the NoteDatabase constructor takes the path of the database file as an argument. Tuto cestu bude poskytovat App Třída v dalším kroku.This path will be provided by the App class in the next step.

    Změny NoteDatabase.cs uložte kliknutím na soubor > Uložit (nebo stisknutím ⌘ + S).Save the changes to NoteDatabase.cs by choosing File > Save (or by pressing ⌘ + S).

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  9. V oblast řešení otevřete v projektu poznámky položku App. XAML a dvakrát klikněte na položku App.XAML.cs .In the Solution Pad, in the Notes project, expand App.xaml and double-click App.xaml.cs to open it. Pak existující kód nahraďte následujícím kódem:Then replace the existing code with the following code:

    using System;
    using System.IO;
    using Notes.Data;
    using Xamarin.Forms;
    
    namespace Notes
    {
        public partial class App : Application
        {
            static NoteDatabase database;
    
            // Create the database connection as a singleton.
            public static NoteDatabase Database
            {
                get
                {
                    if (database == null)
                    {
                        database = new NoteDatabase(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Notes.db3"));
                    }
                    return database;
                }
            }
    
            public App()
            {
                InitializeComponent();
                MainPage = new AppShell();
            }
    
            protected override void OnStart()
            {
            }
    
            protected override void OnSleep()
            {
            }
    
            protected override void OnResume()
            {
            }
        }
    }
    

    Tento kód definuje Database vlastnost, která vytvoří novou NoteDatabase instanci jako typ singleton, přičemž předá název souboru databáze jako argument NoteDatabase konstruktoru.This code defines a Database property that creates a new NoteDatabase instance as a singleton, passing in the filename of the database as the argument to the NoteDatabase constructor. Výhodou vystavení databáze jako jednoúčelové je to, že se vytvoří jedno připojení k databázi, které zůstává otevřené po dobu běhu aplikace, takže není nutné při provádění každé databázové operace otevírat a zavírat soubor databáze.The advantage of exposing the database as a singleton is that a single database connection is created that's kept open while the application runs, therefore avoiding the expense of opening and closing the database file each time a database operation is performed.

    Změny App.XAML.cs uložte kliknutím na soubor > Uložit (nebo stisknutím ⌘ + S).Save the changes to App.xaml.cs by choosing File > Save (or by pressing ⌘ + S).

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  10. V oblast řešení v projektu poznámky rozbalte NotesPage. XAML ve složce zobrazení a otevřete NotesPage.XAML.cs.In the Solution Pad, in the Notes project, expand NotesPage.xaml in the Views folder and open NotesPage.xaml.cs. Pak nahraďte OnAppearing OnSelectionChanged metody a následujícím kódem:Then replace the OnAppearing and OnSelectionChanged methods with the following code:

    protected override async void OnAppearing()
    {
        base.OnAppearing();
    
        // Retrieve all the notes from the database, and set them as the
        // data source for the CollectionView.
        collectionView.ItemsSource = await App.Database.GetNotesAsync();
    }
    
    async void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.CurrentSelection != null)
        {
            // Navigate to the NoteEntryPage, passing the ID as a query parameter.
            Note note = (Note)e.CurrentSelection.FirstOrDefault();
            await Shell.Current.GoToAsync($"{nameof(NoteEntryPage)}?{nameof(NoteEntryPage.ItemId)}={note.ID.ToString()}");
        }
    }    
    

    OnAppearingMetoda naplní CollectionView všechny poznámky uložené v databázi.The OnAppearing method populates the CollectionView with any notes stored in the database. OnSelectionChangedMetoda přejde na a předává NoteEntryPage ID vlastnost vybraného Note objektu jako parametr dotazu.The OnSelectionChanged method navigates to the NoteEntryPage, passing the ID property of the selected Note object as a query parameter.

    Změny NotesPage.XAML.cs uložte kliknutím na soubor > Uložit (nebo stisknutím ⌘ + S).Save the changes to NotesPage.xaml.cs by choosing File > Save (or by pressing ⌘ + S).

    Upozornění

    Aplikace nebude aktuálně sestavena z důvodu chyb, které budou opraveny v následujících krocích.The application will not currently build due to errors that will be fixed in subsequent steps.

  11. V oblast řešení rozbalte NoteEntryPage. XAML ve složce zobrazení a otevřete NoteEntryPage.XAML.cs.In the Solution Pad, expand NoteEntryPage.xaml in the Views folder and open NoteEntryPage.xaml.cs. Potom nahraďte LoadNote OnSaveButtonClicked metody, a OnDeleteButtonClicked následujícím kódem:Then replace the LoadNote, OnSaveButtonClicked, and OnDeleteButtonClicked methods with the following code:

    async void LoadNote(string itemId)
    {
        try
        {
            int id = Convert.ToInt32(itemId);
            // Retrieve the note and set it as the BindingContext of the page.
            Note note = await App.Database.GetNoteAsync(id);
            BindingContext = note;
        }
        catch (Exception)
        {
            Console.WriteLine("Failed to load note.");
        }
    }
    
    async void OnSaveButtonClicked(object sender, EventArgs e)
    {
        var note = (Note)BindingContext;
        note.Date = DateTime.UtcNow;
        if (!string.IsNullOrWhiteSpace(note.Text))
        {
            await App.Database.SaveNoteAsync(note);
        }
    
        // Navigate backwards
        await Shell.Current.GoToAsync("..");
    }
    
    async void OnDeleteButtonClicked(object sender, EventArgs e)
    {
        var note = (Note)BindingContext;
        await App.Database.DeleteNoteAsync(note);
    
        // Navigate backwards
        await Shell.Current.GoToAsync("..");
    }
    

    NoteEntryPagePoužívá LoadNote metodu k načtení poznámky z databáze, jejíž ID bylo předáno jako parametr dotazu na stránku a uloží je jako Note objekt na BindingContext stránce.The NoteEntryPage uses the LoadNote method to retrieve the note from the database, whose ID was passed as a query parameter to the page, and store it as a Note object in the BindingContext of the page. Při OnSaveButtonClicked spuštění obslužné rutiny události Note je instance uložena do databáze a aplikace přejde zpět na předchozí stránku.When the OnSaveButtonClicked event handler is executed, the Note instance is saved to the database and the application navigates back to the previous page. Při OnDeleteButtonClicked spuštění obslužné rutiny události se Note instance z databáze odstraní a aplikace přejde zpět na předchozí stránku.When the OnDeleteButtonClicked event handler is executed, the Note instance is deleted from the database and the application navigates back to the previous page.

    Změny NoteEntryPage.XAML.cs uložte kliknutím na soubor > Uložit (nebo stisknutím ⌘ + S).Save the changes to NoteEntryPage.xaml.cs by choosing File > Save (or by pressing ⌘ + S).

  12. Sestavte a spusťte projekt na každé platformě.Build and run the project on each platform. Další informace najdete v tématu sestavování rychléhostartu.For more information, see Building the quickstart.

    Na NotesPage stisknutím tlačítka Přidat přejděte na NoteEntryPage a zadejte poznámku.On the NotesPage press the Add button to navigate to the NoteEntryPage and enter a note. Po uložení poznámky aplikace přejde zpět na NotesPage.After saving the note the application will navigate back to the NotesPage.

    Pokud chcete sledovat chování aplikace, zadejte několik poznámek s různou délkou.Enter several notes, of varying length, to observe the application behavior. Ukončete aplikaci a znovu ji spusťte, abyste zajistili, že poznámky, které jste zadali, byly uloženy do databáze.Close the application and re-launch it to ensure that the notes you entered were saved to the database.

Další krokyNext steps

V tomto rychlém startu jste se naučili:In this quickstart, you learned how to:

  • Místní uložení dat v databázi SQLite.NET.Store data locally in a SQLite.NET database.

Pokračujte dalším rychlým startem pro styl aplikace pomocí stylů XAML.Continue to the next quickstart to style the application with XAML styles.