機能は現時点では基本的なものです。私はかなり簡単に行を追加することができ、そうするとリストボックスを更新しますが、行を削除するか、最初の行なしでプログラムを開始すると (Insert Query から)、SQLiteDataReader はこの例外をスローします:
Object reference not set to an instance of an object.
それは非常に独特で、最初の行 (DB の作成時に追加される) なしでプログラムを開始するとスローされるエラーです。また、プログラムを起動するたびに発生し、DB が新しく作成されません。DBを作成し、プログラムを閉じ、プログラムを再度開いてDBに接続すると、リーダーはそのエラーを出します。
ここにいくつかのコードがあります。
SQLiteConnection db = new SQLiteConnection("Data Source=test.sqlite;Version=3;");
SQLiteCommand cmd;
query = "SELECT * FROM Table";
db.Open();
SQLiteDataReader reader = cmd.ExecuteReader(); //This is the line that throws
while (reader.Read())
{
//read and do work. (This section has been tested and works
}
reader.Close()
db.Close();
テーブルが作成されたばかりの場合、クエリは正常に機能することに注意してください。行が削除された場合、またはこのエラーがポップアップするのは、DB を新たに作成せずにプログラムを再起動した場合のみです。なぜそれをしているのかわからないようです。あまり論理的ではないように見えますが、愚かなバグだと思います。
すべての助けに感謝します。
参照: System.Data.SQLite.dll の使用