Я уже проверял другую проблему и другие ответы, но это не решает мою проблему.
Это запрос, и он может выполняться в SQL Management Studio
USE master Alter DATABASE SATS_Test Set Single_User With Rollback Immediate
Restore Database SATS_Test From Disk =N'C:\Users\MyPath\05052020t_test.bak'
Alter Database SATS_Test Set Multi_User
Вот c# code => вышеуказанный запрос выводится из query
string connetionString = null;
SqlConnection connection;
SqlDataAdapter adapter = new SqlDataAdapter();
connetionString = "Data Source="+DataAccessHelper.ServerName+";Initial Catalog=master;User ID="+DataAccessHelper.UserID+";Password="+DataAccessHelper.Password;
connection = new SqlConnection(connetionString);
string restorefilepath = ConfigurationManager.AppSettings["DBBackupPath"].ToString();
restorefilepath = Path.Combine(restorefilepath, filename);
string query = @"USE master Alter DATABASE " + DataAccessHelper.DatabaseName + @" Set Single_User With Rollback Immediate" + Environment.NewLine + " Restore Database " + DataAccessHelper.DatabaseName + @" From Disk =N'" + restorefilepath + "' " + Environment.NewLine + " Alter Database " + DataAccessHelper.DatabaseName + " Set Multi_User";
int result = 0;
using (SqlCommand cmd = new SqlCommand(query, connection))
{
connection.Open();
result = cmd.ExecuteNonQuery();
connection.Close();
}
Проблема в том, что этот результат из ExecuteNonQuery
всегда возвращает -1. В чем я был неправ?
Одна вещь: текущее приложение использует эту базу данных восстановления, так что я буду, чтобы эта база данных имела соединение при восстановлении базы данных. Его проблема?
Как я могу этого добиться?