データベースへのアクセス 01/17 金
現在作成しているアプリでは、データベースは SQLite を使用しています。これは、「あとで、処理内容を確認したい」というときに、SQLite であれば、データファイルを保存しておけば、そのファイルを開くだけで過去のデータにアクセスできるからです。
具体的に、データベースにアクセスするための方法をメモしておきます。以下のメモは、他にも非常に多くの方が、ブログ等で紹介しておられますので、特に新しいものではありません。
まず、「もしも、データベースそのものが存在しなければ、データベースを作る」というのは、次のようにします。
using var conn = new SQLiteConnection("DataSource=" + DataFileName); conn.Open(); SQLiteCommand comm = conn.CreateCommand(); string Src; Src = "create table if not exist TestTable ( id primary key, name not null, pic BLOB)"; comm.CommandText = Src; comm.ExecuteNonQuery(); comm.Dispose(); conn.Close(); conn.Dispose();
これで、ID と名前と顔写真のデータベースが作成できました。
次に、「データベースを開いて、何らかの処理を行う」というのは、次のようにします。
using var conn = new SQLiteConnection("DataSource=" + DataFileName); conn.Open(); SQLiteCommand comm = conn.CreateCommand(); string Src; Src = "select id, name form TestTable"; comm.CommandText = Src; SQLiteDataReader reader = comm.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { int myid; string myname; myid = reader.GetInt32(0); myname = reader.GetString(1); } } comm.Dispose(); conn.Close(); conn.Dispose();
ここで、上のふたつで実際にデータベースを操作しているのは、次の部分です。
Src = "create table if not exist TestTable ( id primary key, name not null, pic BLOB)";
Src = "select id, name form TestTable";
これら文を理解するためには、プログラムそのものを理解するのとは、別の事柄(つまり、データベースとは、そもそも何で、どのように処理を行うのかという事柄)を理解しなければなりません。そういう意味では、単にプログラムを作るよりも、難しい課題だと思います。
ただ、現実的に皆さんに使っていただけるようなアプリを作るためには、データベース的な考え方は、避けて通れません。というよりも、「そもそもデータベースとは何か」、「どうすれば便利に使うことができるのか」という事柄は、多くの人が理解すべきことだろうなあと、私は思っています。