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の実行が可能