「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.03.31
XML
カテゴリ: C#.NET


MVVM パターンを使用してデータベースに接続するためのサンプルコードを示します。この例では、SQLite データベースを使用していますが、他のデータベースに接続する手順も類似しています。


まず、SQLite データベースに接続するためのデータベースヘルパークラスを作成します。


```csharp

using System;

using System.Data.SQLite;


namespace MVVMDatabaseExample

{

    public class DatabaseHelper

    {

        private const string ConnectionString = "Data Source=SampleDatabase.db;Version=3;";


        public void InsertData(string name, int age)

        {

            using (var connection = new SQLiteConnection(ConnectionString))

            {

                connection.Open();

                using (var command = new SQLiteCommand(connection))

                {

                    command.CommandText = "INSERT INTO Persons (Name, Age) VALUES (@Name, @Age)";

                    command.Parameters.AddWithValue("@Name", name);

                    command.Parameters.AddWithValue("@Age", age);

                    command.ExecuteNonQuery();

                }

            }

        }

    }

}

```


次に、ViewModel クラスを作成します。この ViewModel クラスは、View からの入力を処理し、データベースヘルパークラスを使用してデータベースにデータを挿入します。


```csharp

using System.Windows.Input;


namespace MVVMDatabaseExample.ViewModels

{

    public class MainViewModel : ViewModelBase

    {

        private string name;

        public string Name

        {

            get { return name; }

            set

            {

                name = value;

                OnPropertyChanged(nameof(Name));

            }

        }


        private int age;

        public int Age

        {

            get { return age; }

            set

            {

                age = value;

                OnPropertyChanged(nameof(Age));

            }

        }


        public ICommand SaveCommand { get; private set; }


        public MainViewModel()

        {

            SaveCommand = new RelayCommand(SaveData);

        }


        private void SaveData(object parameter)

        {

            var databaseHelper = new DatabaseHelper();

            databaseHelper.InsertData(Name, Age);

        }

    }

}

```


`ViewModelBase` は、INotifyPropertyChanged インターフェースを実装した基本的な ViewModel クラスです。


最後に、XAML を使用して View を作成します。


```xml

<Window x:Class="MVVMDatabaseExample.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:local="clr-namespace:MVVMDatabaseExample.ViewModels"

        Title="MVVM Database Example" Height="150" Width="300"

        DataContext="{Binding Source={StaticResource Locator}, Path=MainViewModel}">

    <Grid>

        <StackPanel Margin="10">

            <TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" Margin="0 0 0 5"/>

            <TextBox Text="{Binding Age, UpdateSourceTrigger=PropertyChanged}" Margin="0 0 0 5"/>

            <Button Content="Save" Command="{Binding SaveCommand}"/>

        </StackPanel>

    </Grid>

</Window>

```


この例では、`TextBox` に入力されたデータを ViewModel にバインドし、`Button` のクリックイベントを ViewModel の `SaveCommand` にバインドします。`SaveCommand` は、データベースヘルパークラスを使用してデータベースにデータを挿入するメソッドを呼び出します。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.03.31 15:34:09


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: