AppDataフォルダに格納されているローカルデータベースを使用するアプリケーションを作成します。データベースが存在する場合、それはチェックし、アプリケーションの各開始時データベースファイルが削除された場合、C#DataContext CreateDatabaseが機能しない
private NorthWindDataContext northWindDataContext = new NorthWindDataContext(connectionString);
:私は、データを取得するためにDataContext
を作成しました。それが存在していない場合は、データベースを作成する必要があります。
DB:
if (!northWindDataContext.DatabaseExists())
{
try
{
northWindDataContext.CreateDatabase();
}
catch (Exception ex1)
{
try
{
northWindDataContext.DeleteDatabase();
}
catch (Exception ex2)
{
}
}
goto DB;
}
をこれが正常に動作しますが、私はディレクトリ内のファイルを削除し、再度アプリケーションを起動した場合、私はそれがCreateDatabase
を使用してデータベースを作成するときに、以下のExeceptionを取得します:
"データベース 'C:\ Users \ me \ AppData \ Local \ Test \ Northwind.mdf'は既に存在します。別のデータベース名を選択してください。
CreateDatabase
-methodが失敗した場合、それはDeleteDatabase
を使用して(実際には存在しない)データベースを削除する必要があります。ここでは、アプリケーションによってスローされた例外はありません。次に、データベースを再度作成しようとする必要があります。今度はアプリケーションがCreateDatabase
にExeceptionをスローしませんが、作成されたデータベースファイルではありません。
これは、データベースファイルがユーザーによって削除された場合、アプリケーションの起動時に発生するため、何が間違っているのか、または何か不足していることがありますか?
データベースを追加/削除するには、AttachとDeAttachを使用する必要があります。 – jdweng
'DataContext'クラスには' Attach'や 'DeAttach'などのメソッドはありません。 – daniel59