おはようございます。
前回に引き続き PostgreSQL を使って、登録、更新、削除をしてみたいと思います。
前回の記事はこちら。
【WPF】PostgreSQL に接続してデータを取得して表示する
MainWindow.xaml.cs
/// <summary>
/// 追加ボタンクリックイベント
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void add_button_Click(object sender, RoutedEventArgs e)
{
logger.Info("追加ボタンクリック");
// データを追加する
// PgDbContext に変更
//using (var conn = new SQLiteConnection("Data Source=SampleDb.sqlite"))
using (var context = new PgDbContext())
{
// データ作成
// テーブルはコンテキスト経由でアクセスする
//var table = context.GetTable<Cat>();
Cat cat = new Cat();
cat.No = 5;
cat.No = 5;
cat.Name = "こなつ";
cat.Sex = "♀";
cat.Age = 7;
cat.Kind = "01";
cat.Favorite = "布団";
// データ追加
// コンテキスト経由でエンティティを追加
//table.InsertOnSubmit(cat);
context.Cats.Add(cat);
// DBの変更を確定
// メソッド変更
//context.SubmitChanges();
context.SaveChanges();
}
// データ再検索
searchData();
MessageBox.Show("データを追加しました。");
}
MainWindow.xaml.cs
/// <summary>
/// 更新ボタンクリックイベント
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void upd_button_Click(object sender, RoutedEventArgs e)
{
logger.Info("更新ボタンクリック");
// 選択チェック
if (this.dataGrid.SelectedItem == null)
{
MessageBox.Show("更新対象を選択してください。");
return;
}
// データを更新する
// PgDbContext に変更
//using (var conn = new SQLiteConnection("Data Source=SampleDb.sqlite"))
using (var context = new PgDbContext())
{
// 対象のテーブルオブジェクトを取得
// テーブルはコンテキスト経由でアクセスする
//var table = context.GetTable<Cat>();
var table = context.Cats;
// 選択されているデータを取得
Cat cat = this.dataGrid.SelectedItem as Cat;
// テーブルから対象のデータを取得
var target = table.Single(x => x.No == cat.No);
// データ変更
target.Favorite = "高いところ";
// DBの変更を確定
// メソッド変更
//context.SubmitChanges();
context.SaveChanges();
}
// データ再検索
searchData();
MessageBox.Show("データを更新しました。");
}
MainWindow.xaml.cs
/// <summary>
/// 削除ボタンクリックイベント
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void del_button_Click(object sender, RoutedEventArgs e)
{
logger.Info("追加ボタンクリック");
// 選択チェック
if (this.dataGrid.SelectedItem == null)
{
MessageBox.Show("削除対象を選択してください。");
return;
}
// データを削除する
// PgDbContext に変更
//using (var conn = new SQLiteConnection("Data Source=SampleDb.sqlite"))
using (var context = new PgDbContext())
{
// 対象のテーブルオブジェクトを取得
// テーブルはコンテキスト経由でアクセスする
//var table = context.GetTable<Cat>();
var table = context.Cats;
// 選択されているデータを取得
Cat cat = this.dataGrid.SelectedItem as Cat;
// テーブルから対象のデータを取得
var target = table.Single(x => x.No == cat.No);
// データ削除
// メソッド変更
//table.DeleteOnSubmit(target);
table.Remove(target);
// DBの変更を確定
context.SaveChanges();
}
// データ再検索
searchData();
MessageBox.Show("データを削除しました。");
}
サクッとした記事になりましたが、ひとまず PostgreSQL はここまでとして次回は Oracle を試してみたいと思います。
ソースはこちら
ではでは。
第1回 | 【WPF】PostgreSQL に接続してデータを取得して表示する |
第2回 | 【WPF】PostgreSQL に接続してデータを操作(登録、更新、削除)してみる |
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント