少しグーグルで調べた後、参照を使用してこのコードを作成しましたが、実行中BackupDatabase(myfilename.bak)
に行番号でエラーが発生します。11
そして言います:
FileNotFoundException が処理されませんでした
Could not load file or assembly 'Microsoft.SqlServer.SmoEnum, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
SMO
ファイルが自分のドライブとドライブにも存在することを確認しましたbin
。問題を理解できません。親切に助けてください。
public readonly string ConnectionString = MyApp.Properties.Settings.Default.DbConnectionString;
public void BackupDatabase(string backUpFile)
{
ServerConnection con = new ServerConnection(ConnectionString);
Server server = new Server(con);
Backup source = new Backup();
source.Action = BackupActionType.Database;
source.Database = "TestDB";
BackupDeviceItem destination = new BackupDeviceItem(backUpFile, DeviceType.File);
source.Devices.Add(destination);
source.SqlBackup(server);
con.Disconnect();
}
また、私はやろうとしました:
if(con.Isopen)
{
//Then all of my code goes in here
}
しかし、この条件が満たされることはなく、内部コードが実行されることはありません。
また、con.open()
に対してDatabase Connection
行っていたように、 にはそのようなオプションがないことにも気付きましたServerConnection
。
編集-1:
デバッグ中に私はこれを見つけましたcon
編集-2:
この質問に対する別のクエリがあります: DB の connectionString は ServerConnection の接続文字列と同じですか?
私は実際にこの行に関して話している:-
public readonly string ConnectionString = MyApp.Properties.Settings.Default.DbConnectionString;
上記ConnectionString
が含まれているため、{server='Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDb.mdf;Integrated Security=True;User Instance=True';Trusted_Connection=true;multipleactiveresultsets=false}