Witam. Mam bazę danych na serwerze, udostępnioną w lokalnej sieci. Chciałbym napisać apkę, która robi backup bazy danych z tego serwera, ale nie na serwerze, a na komputerze z którego tę apkę uruchomiłem. Czyli dla lepszego zrozumienia:
Baza danych stoi na jakimś serverze z Windows Server. Mam sobie laptopa który jest podłączony do tej samej sieci i ma dostęp do bazy danych. Na tym laptopie odpalam sobie apkę, łączę się z bazą danych i plik .bak jest zapisywani na dysku laptopa, a nie serwera.
Jesteście w stanie mi pomóc z tym problemem?
Na ten moment napisałem jedynie tyle i mi niestety nie działa:
private static void CreateDatabaseBackup(string connectionString, string databaseName, string backupFilePath)
{
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand backupCommand = connection.CreateCommand();
backupCommand.CommandText = $"BACKUP DATABASE {databaseName} TO DISK = '{backupFilePath}'";
connection.Open();
backupCommand.ExecuteNonQuery();
connection.Close();
}
Wyrzuca mi wyjątek : System.Data.SqlClient.SqlException: „Cannot open backup device 'C:\Backup\backup.bak'. Operating system error 3(The system cannot find the path specified.).
BACKUP DATABASE is terminating abnormally.”
Pewnie z tego powodu, iż próbuje zapisać plik na dysku serwera, a na nim nie ma ścieżki, określonej w zmiennej backupFilePath
.
Chciałbym aby .bak był zapisywany na dysku urządzenia odpalającego aplikację.
Jak podejść do tego problemu?