Я написал этот код, используя ссылки после биткинга, но при выполнении BackupDatabase(myfilename.bak)
он дает мне ошибку в строке №. 11
и говорит:ServerConnection | Восстановление резервной копии с помощью Microsoft.SqlServer.SmoEnum Error - FileNotFoundException
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
.
EDIT-1:
При отладке я нашел это с con
EDIT-2:
У меня есть еще один запрос на этот вопрос: Есть ли connectionString DB - это то же самое из строки подключения 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}
вы добавили ссылку на DLL в проекте? – Ric