Sqlite dbが存在しない場合、プログラムで作成しようとしています。次のコードを記述しましたが、最後の行で例外が発生しています。
_if (!System.IO.File.Exists("C:\\Users\\abc\\Desktop\\1\\synccc.sqlite"))
{
Console.WriteLine("Just entered to create Sync DB");
SQLiteConnection.CreateFile("C:\\Users\\abc\\Desktop\\1\\synccc.sqlite");
string sql = "create table highscores (name varchar(20), score int)";
SQLiteCommand command = new SQLiteCommand(sql, sqlite2);
command.ExecuteNonQuery();
}
sqlite2 = new SQLiteConnection("Data Source=C:\\Users\\abc\\Desktop\\1\\synccc.sqlite");
_
command.ExecuteNonQuery();
行で例外を取得します。例外は_Invalid operation exception was unhandled
_です。プロジェクトにsqliteファイルを追加する他の方法はありますか?手動でできますか?そうでない場合、どうすれば上記の問題を解決できますか?
データベースで任意の種類のデータ定義コマンドを実行するには、コマンドを渡すためのオープン接続が必要です。コードでは、クエリの実行後に接続を作成します。
もちろん、その作成後、接続を開く必要があります
if (!System.IO.File.Exists("C:\\Users\\abc\\Desktop\\1\\synccc.sqlite"))
{
Console.WriteLine("Just entered to create Sync DB");
SQLiteConnection.CreateFile("C:\\Users\\abc\\Desktop\\1\\synccc.sqlite");
using(var sqlite2 = new SQLiteConnection("Data Source=C:\\Users\\abc\\Desktop\\1\\synccc.sqlite"))
{
sqlite2.Open();
string sql = "create table highscores (name varchar(20), score int)";
SQLiteCommand command = new SQLiteCommand(sql, sqlite2);
command.ExecuteNonQuery();
}
}
ただし、プロバイダーのバージョン3を使用する場合、ファイルの存在を確認する必要はありません。接続を開くだけで、ファイルが存在しない場合は作成されます。