예제 #1
0
        /// <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("データを追加しました。");
        }
예제 #2
0
        /// <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();
        }
예제 #3
0
        /// <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("データを更新しました。");
        }
예제 #4
0
        /// <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();
            }
        }