SQL Server kopii zapasowej i przywracania kopii zapasowych
string connectionString1 = (@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Database=Database1;Integrated Security=True; User Instance=True");
SqlConnection cn = new SqlConnection(connectionString1);
cn.Open();
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = @"BACKUP DATABASE Database1 TO DISK = 'C:\SRI2Works.bak'";
cmd.CommandType = CommandType.Text;
cmd.Connection = cn;
reader = cmd.ExecuteReader();
cn.Close();
MessageBox.Show("Database Backup Successfull.");
przywrócić
string connectionString1 = (@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Database=Database1;Integrated Security=True; User Instance=True");
SqlConnection cn = new SqlConnection(connectionString1);
cn.Open();
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = @"use master; RESTORE DATABASE Database1 FROM DISK = 'C:\SRI2Works.bak'";
cmd.CommandText = "DBCC CHECKDB ('Database1')";
cmd.CommandType = CommandType.Text;
cmd.Connection = cn;
reader = cmd.ExecuteReader();
cn.Close();
MessageBox.Show("Database Restored Successfull.");
Kod ten przebiega pomyślnie, ale nie wprowadzać żadnych zmian.
W jaki sposób zweryfikowałeś, że kod został rzeczywiście wykonany? Czy okno wiadomości się rozpaliło? – usr
Czy faktycznie zapisano plik 'C: \ SRI2Works.bak'? I tak jak jest, twoje polecenie przywracania wykonuje tylko 'DBCC CHECKDB ('Database1')', który zastępuje 'CommandText' ustawiony w powyższym wierszu. –
@ ThomasGerstendörfer dobry połów! OP powinien użyć programu SQL Profiler, aby sprawdzić, czy oczekiwane polecenia są rzeczywiście wysyłane. – usr