/// <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("データを追加しました。"); }
/// <summary> /// CSV読込ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void imp_button_Click(object sender, RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.FileName = ""; ofd.DefaultExt = "*.csv"; if (ofd.ShowDialog() == false) { return; } List <Cat> list = readFile(ofd.FileName); // 接続 int count = 0; //using (var conn = new SQLiteConnection("Data Source=SampleDb.sqlite")) //using (var conn = new MySqlConnection("Database=DB01;Data Source=localhost;User Id=USER01;Password=USER01; sqlservermode=True;")) using (var context = new PgDbContext()) { // 対象のテーブルオブジェクトを取得 var table = context.Cats; // データを追加する foreach (Cat cat in list) { // テーブルから対象のデータを取得 // データが存在するかどうか判定 if (table.SingleOrDefault(x => x.No == cat.No) == null) { // データ追加 // コンテキスト経由でエンティティを追加 //table.InsertOnSubmit(cat); context.Cats.Add(cat); // DBの変更を確定 // メソッド変更 //context.SubmitChanges(); context.SaveChanges(); count++; } } } MessageBox.Show(count + " / " + list.Count + " 件 のデータを取り込みました。"); // データ再検索 searchData(); }
/// <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("データを更新しました。"); }
/// <summary> /// フォルダ参照ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void fld_button_Click(object sender, RoutedEventArgs e) { // ダイアログ生成 CommonOpenFileDialog dlg = new CommonOpenFileDialog(); // パラメタ設定 // タイトル dlg.Title = "フォルダ選択"; // フォルダ選択かどうか dlg.IsFolderPicker = true; // 初期ディレクトリ dlg.InitialDirectory = @"c:\"; // ファイルが存在するか確認する //dlg.EnsureFileExists = false; // パスが存在するか確認する //dlg.EnsurePathExists = false; // 読み取り専用フォルダは指定させない //dlg.EnsureReadOnly = false; // コンパネは指定させない //dlg.AllowNonFileSystemItems = false; //ダイアログ表示 var Path = dlg.ShowDialog(); if (Path == CommonFileDialogResult.Ok) { // 選択されたフォルダ名を取得、格納されているCSVを読み込む List <Cat> list = readFiles(dlg.FileName); // 接続 int count = 0; //using (var conn = new SQLiteConnection("Data Source=SampleDb.sqlite")) //using (var conn = new MySqlConnection("Database=DB01;Data Source=localhost;User Id=USER01;Password=USER01; sqlservermode=True;")) using (var context = new PgDbContext()) { // 対象のテーブルオブジェクトを取得 var table = context.Cats; // データを追加する foreach (Cat cat in list) { // テーブルから対象のデータを取得 // データが存在するかどうか判定 if (table.SingleOrDefault(x => x.No == cat.No) == null) { // データ追加 // コンテキスト経由でエンティティを追加 //table.InsertOnSubmit(cat); context.Cats.Add(cat); // DBの変更を確定 // メソッド変更 //context.SubmitChanges(); context.SaveChanges(); count++; } } } MessageBox.Show(count + " / " + list.Count + " 件 のデータを取り込みました。"); // データ再検索 searchData(); } }