System.Data.SQLiteデータベース基本操作 その2 DataGridViewとの連携 (C#)


sqliteは、C/C++,Java,PHP,Perl等で利用できる軽量データベースであり、MacOS, iOS, Android等に標準搭載されている。Windows, Linuxでもインストールすれば利用可能である。
一方、.NET環境で利用できるsqliteとしては、System.Data.SQLiteがあり、DLLを参照に追加するだけで気軽に使用できる。
その1では、System.Data.SQLiteを用いてDBへの接続、テーブルの作成、レコードの追加、データの取得を行ってみた。
今回はDataGridViewとの連携を試してみた。


現状、超メモレベルの状態。
体裁はそのうち整える。

既存のDBファイルからDataSetを作成する


参考) http://sctfarch.blogspot.jp/2012/05/visual-studio-2010-express-sqlite.html

DataGridViewにDataTableを関連付ける (C#)では、DataSetを新規作成したが、今回は既存のDBファイルをデータソースとしてDataSetを作成する。


データソースウィンドウで新しいデータソースの追加を選択、
 データソースの種類:データベース
 データベースモデルの選択:データセット
 データ接続の選択:新しい接続->SQLite DataBase File->Browsから既存のDBファイルを選択

既存のDBファイルはDataGridViewにDataTableを関連付ける (C#)の方法で作成しておく。
DataSetが作成されると、右図のように表示される。

DataSetとDataGridViewの連携


DataGridViewにDataTableを関連付ける (C#)では、DataGridViewのBindingSourceにDataSetを指定したが、
今回はDataSetからDataGridViewの自動的生成機能を使う。
データソースウィンドウから、DataSet内のテーブルをFormのデザイン画面にドラッグ&ドロップすると、図のようなDataGridViewとView操作用ボタンが自動で配置される。
(上部のボタンは不要ならば削除してよい)。

これにより、DataSetのテーブルデータが自動でDataGridViewに表示され、DataGridView上での編集結果が自動でDataSetのテーブルデータに反映される。



DataSetの変更結果をDBファイルに反映


参考)http://msdn.microsoft.com/ja-jp/library/33y2221y%28v=vs.80%29.aspx

View操作用ボタンの保存ボタンを押すとDBファイルに更新が反映される。
View操作用ボタンを削除した場合は、DBファイルに更新を反映したい処理(自作のボタンハンドラなど)に以下のようなコードを実装する。

                //DBファイルに反映
                自動追加されたTableAdapter.Update(DataSet名);

これでアプリのユーザーからはDataGridViewの編集結果がDBファイルに反映されたように見える。
(実際ははDataGridView上での編集結果がDataSetに反映され、そのDataSetの編集結果がDBファイルに反映される。)

上記手順により、DBを操作するソースコード、DBの内容をユーザーに見せるソースコードはいっさい書くことなく、DB編集GUIアプリを作成できる。

おまけ サーバエクスプローラからDBファイルを覗いてみる


本節は特にDataGridViewと連携する上で不要な手順であるが、
VisualStudio上でDBをいじる機能があるので利用してみる。

サーバーエクスプローラー->接続の追加->データソースに”SQLite Database File”を選択
->Browseボタンから既存のDBファイルを選択(またはNewで作成)。

上記手順でサーバーエクスプローラに表示される。
テーブルが存在していれば、Tablesに表示される。
右クリック->データの取得 で編集可能
右クリック->新しいクエリ でSQLの実行が可能

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です