データベースをアタッチして、あるデータベースから別のデータベースにすべてのデータをコピーすることはできますが、最終的には同じコードを使用してデータベースをデタッチすることはできません。
var connection = new SQLiteConnection(connection)
connection.Open();
sqlAttachCommand = "ATTACH database '" + fileLoc + "' AS toMerge";
var cmd= new SQLiteCommand(sqlAttachCommand);
cmd.Connection = connection;
cmd.ExecuteNonQuery();
...
sqlAttachCommand = "DETACH database '" + fileLoc + "'";
例外は次のとおりです。
SQL論理エラーまたはデータベースがありませんそのようなデータベースはありません:C:\ temp \ database.db "。
私はそれに添付し、このデータベースからすべてのデータをコピーしたので、これは奇妙です。
このDETACH DATABASE
コマンドは、データベースファイルではなく、スキーマ名をパラメーターとして受け取ります。
したがって、デタッチコマンドは次のようになります。
sqlAttachCommand = "DETACH database toMerge";
ATTACHコマンドのように、Thingに名前を付けましたtoMerge
。
SQL例外では、欠落しているデータベースは、SQLiteがそのファイルを失ったという事実を参照しているのではなく、存在しないスキーマ名を使用していることを伝えようとしているだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加