di backupSQL e ripristinare
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.");
ripristinare
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.");
Questo codice viene eseguito correttamente, ma non apportare alcuna modifica.
Come è stato verificato che il codice è stato effettivamente eseguito? La scatola del messaggio ha sparato? – usr
Il file 'C: \ SRI2Works.bak' è effettivamente scritto? E, come è, il comando restore esegue solo 'DBCC CHECKDB ('Database1')' che sostituisce il 'CommandText' impostato nella riga sopra. –
@ ThomasGerstendörfer buona cattura! L'OP deve utilizzare SQL Profiler per verificare che i comandi previsti siano effettivamente inviati. – usr