Ciao Lorenzo, grazie per avermi risposto. Ho utilizzato la prima soluzione che mi hai proposto perchè è quella che mi pare più adatta per il mio progetto, che è estremamente piccolo e semplice. Tuttavia non sono riuscito a farlo funzionare. Mi spiego: è una solution in C#, e il DB è in Sql Server 2005 Express. Il file .mdf ed il relativo .ldf sono compresi nella cartella del progetto, dunque "in locale".
Il codice da me usato è questo:
try
{
SqlConnection conbk = new SqlConnection("mia_connection_string");
conbk.Open();
string bkp = @"BACKUP DATABASE nome_database TO DISK='C:\Backup\Database1.mdf'";
SqlCommand cmdbk = new SqlCommand(bkp, conbk);
cmdbk.ExecuteNonQuery();
conbk.Close();
}
catch (Exception exbk)
{
MessageBox.Show(exbk.Message);
}
Tuttavia ottengo un errore di questo tipo :"impossibile trovare la voce di sysdatabases per il database ''. Nessuna voce con il nome specificato".
Se ho ben capito non mi trova proprio il database, probabilmente perchè risulta "non connesso".
Per prova, ho creato un nuovo database ed eseguito la query "BACKUP DATABASE nome_database TO DISK='C:\Backup\Database1.mdf'" con SQL Server Management Studio Express e funziona tutto alla perfezione. Che cosa sbaglio/dimentico??