ここから本文です

C#フォームアプリケーションで、フォーム上のデータを更新する?

アバター

ID非公開さん

2017/7/2604:53:55

C#フォームアプリケーションで、フォーム上のデータを更新する?

フォームアプリの練習をしています。

C#でデータベース接続の練習をしていて、ようやくデータベースへの接続に成功し、データを読み取ることができました。しかし、今の時点ではまだ、読み取ったデータをMessageBoxで表示しているだけです。


私がしたいのは以下の通りです。

フォーム上にボタンを表示します。[データ追加], [データ確認], [データ編集], [データ削除], [接続終了]

そして、空きスペースに、今データベースに入っているデータをすべて表示するというものです。


ただ、一度データを取得したものを表示するだけではいけませんよね。。私の場合、たとえばデータ追加をしたら、フォーム上にもそのデータを追加しないといけませんし、データ削除をすれば、そのデータはフォーム上からも消えなければなりません。

このように、すでにロードしきっているフォーム上でデータを毎回、その都度更新してデータを表示していくということはどのようにすれば可能でしょうか??

閲覧数:
51
回答数:
1

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2017/7/2614:17:58

DataSet と DataGrid コントロールを使ってください。
DataSet 型でデータベースからデータを取る場合は、DataAdapter というクラスも必要になります。
DataSet というのはデータベースから取得したデータをローカルに一時保存する機能があります。これを DataGird(テキストボックスを並べるなどして自前で実装することもできる。)に表示すると、データの編集や、追加、削除などはほぼほぼこれらの組み合わせがやってくれます。
追加の場合は、ローカルに保存されてからどの行が追加されたか DataSet が覚えてくれているので、データベースに反映するときは、追加された行をだけ抜いてきて、反映させます。
また、DataSet から行を削除した場合は、完全に削除するのではなく、削除フラグを立てるという動作になります。これの意味するところは削除フラグの立てられた行を抜いてきて、Primary Key となる ID などを元に DELETE クエリを編成すれば、データベースからも行を削除できるということです。
このほか、DataSet には IsChanged というプロパティが付いており、DataSet に少しでも変更が加えられた場合は、簡単に検出することができます。これを使えば、「保存しますか?」などの確認メッセージの提示も可能です。
データベースへの保存にも DataAdaper を使うことができるのですが、ここまでやってしまうと、かえってわかりにくいと思うので、データベースへの保存は自力でクエリを編成するコードを書いてみることをお勧めします。

アバター

質問した人からのコメント

2017/8/1 08:14:31

ありがとうございました! いけそうです

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる