Вы пытаетесь выполнить резервное копирование или восстановление? Вы упоминаете Резервное копирование в заголовке, а commmand - для Восстановления.
Есть еще не так много примеров для localDB.
Используйте мой код, как показано ниже. Надеюсь, что это помогает ..
Для Подпорки
string master_ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;Database=Master;Integrated Security=True;Connect Timeout=30;";
using (SqlConnection masterdbConn = new SqlConnection())
{
masterdbConn.ConnectionString = master_ConnectionString;
masterdbConn.Open();
using (SqlCommand multiuser_rollback_dbcomm = new SqlCommand())
{
multiuser_rollback_dbcomm.Connection = masterdbConn;
multiuser_rollback_dbcomm.CommandText= @"ALTER DATABASE yourdbname SET MULTI_USER WITH ROLLBACK IMMEDIATE";
multiuser_rollback_dbcomm.ExecuteNonQuery();
}
masterdbConn.Close();
}
SqlConnection.ClearAllPools();
using (SqlConnection backupConn = new SqlConnection())
{
backupConn.ConnectionString = yourConnectionString;
backupConn.Open();
using (SqlCommand backupcomm = new SqlCommand())
{
backupcomm.Connection = backupConn;
backupcomm.CommandText= @"BACKUP DATABASE yourdbname TO DISK='c:\yourdbname.bak'";
backupcomm.ExecuteNonQuery();
}
backupConn.Close();
}
Для Restore-
string master_ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;Database=Master;Integrated Security=True;Connect Timeout=30;";
using (SqlConnection restoreConn = new SqlConnection())
{
restoreConn.ConnectionString = master_ConnectionString;
restoreConn.Open();
using (SqlCommand restoredb_executioncomm = new SqlCommand())
{
restoredb_executioncomm.Connection = restoreConn;
restoredb_executioncomm.CommandText = @"RESTORE DATABASE yourdbname FROM DISK='c:\yourdbname.bak'";
restoredb_executioncomm.ExecuteNonQuery();
}
restoreConn.Close();
}
update-
К сожалению, извините, мой код для SQL LocalDB 2014, но вам кажется с использованием 2012 года. Нежелательная замена (LocalDB) \ MSSQLLocalDB на (LocalDB) \ v11.0
И любезно попробуйте с изменением.
И для вашей информации, согласно моему опыту, если бы я написал | Каталог данных | в моем соединенииString я мог только читать (SQL SELECT команду) в базе данных. Другими словами, команды Insert и Update могут быть выполнены, но база данных не была вставлена или обновлена на самом деле без каких-либо исключений. Я думаю, что установка как | Каталог данных | сделает базу данных доступной только для чтения, и я обнаружил, что некоторые люди испытывали трудности с вставкой или обновлением базы данных с помощью | Data Directory | установка.
Надеюсь, что у вас хорошие дни! Благодаря !
Это локальная БД, просто отсоедините ее и скопируйте файл с помощью команд System.IO, таких как FileStream. Затем, чтобы восстановить его, просто перезапишите MDB с копией резервной копии. Я не верю, что локальные файлы db mdb имеют системные/главные таблицы и т. Д., Или что команды резервного копирования/восстановления будут работать на них. –
@ Ryan Mann, localDB - MDF, а также имеет стандартную команду резервного копирования/восстановления. Но некоторая часть верна, когда нам нужна только копия MDF (не резервная копия), нам необходимо остановить сервер и просто скопировать .. –
И «ALTER DATABASE» требует подключения к Master Database в качестве администратора (Integrated Security = True). Затем сообщение об исключении с разрешениями будет разрешено. –