2016-12-12 1 views
0

Ich entwickelte eine Windows-C# .net-Anwendung und ich benutze Sqlserver-Datenbank. Ich erstellte Datenbank in einem speziellen Benutzer namens admin. Und jetzt möchte ich die Datenbank sichern und wiederherstellen.Wie zum Sichern und Wiederherstellen in C# .net

So bin ich in die Sicherung erfolgreich, aber ich Fehler erhalten, während

Wiederherstellung
private void pictureBox6_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       SaveFileDialog f = new SaveFileDialog(); 
       f.InitialDirectory = "D:\\"; 
       f.Title = "HoghooghDastmozdBackup"; 
       f.FileName = "HoghooghDastmozdBackup"; 
       f.FilterIndex = 1; 
       f.OverwritePrompt = true; 
       f.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*"; 
       if (f.ShowDialog() == DialogResult.OK) 
       { 
        SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=HoghooghDastmozd;Persist Security Info=True;User ID=admin;password=123456admin"); 
        // SqlCommand sqlcmd = new SqlCommand("BACKUP DATABASE HoghooghDastmozd TO DISK [email protected]", sqlconn); 
        SqlCommand sqlcmd = new SqlCommand("BACKUP DATABASE [HoghooghDastmozd] TO DISK = @n WITH NOFORMAT, NOINIT, NAME = N'HoghooghDastmozd-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10",sqlconn); 
        sqlcmd.Parameters.AddWithValue("@n", f.FileName); 
        sqlconn.Open(); 
        sqlcmd.ExecuteNonQuery(); 
        sqlconn.Close(); 
        MessageBox.Show("عملیات پشتیبانی موفق بود"); 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 

     } 


private void pictureBox5_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       OpenFileDialog f = new OpenFileDialog(); 
       f.InitialDirectory = "D:\\"; 
       f.Title = "HoghooghDastmozdBackup"; 
       f.FileName = "HoghooghDastmozdBackup"; 
       f.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files(*.*) |*.*"; 
       if (f.ShowDialog() == DialogResult.OK) 
       { 
        SqlConnection sqlconn = new SqlConnection(""); 
        SqlCommand sqlcmd = new SqlCommand("ALTER DATABASE HoghooghDastmozd SET SINGLE_USER with ROLLBACK IMMEDIATE " + "use master " + "RESTORE DATABASE [HoghooghDastmozd] FROM DISK = @n WITH REPLACE ", sqlconn); 
        sqlcmd.Parameters.AddWithValue("@n", f.FileName); 
        sqlconn.Open(); 
        sqlcmd.ExecuteNonQuery(); 
        sqlconn.Close(); 
        MessageBox.Show("عملیات بازیابی موفق بود"); 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

Fehler Bild: Error image

Ich habe diese Erlaubnis erteilt, aber nicht:

EXEC sp_addrolemember 'db_ddladmin', mobtaker; 
EXEC sp_addrolemember 'db_datareader', mobtaker; 
EXEC sp_addrolemember 'db_datawriter', mobtaker; 
EXEC sp_addrolemember 'db_owner', mobtaker; 
EXEC sp_addrolemember 'dbcreator', mobtaker; 
EXEC sp_addrolemember 'sysadmin', mobtaker; 
+0

Wer ist Mobaker? Ich dachte, dein Benutzer heißt admin? – Ash8087

Antwort

0

Die Der einfachste Weg, um sicherzustellen, dass Sie die richtigen Berechtigungen haben, besteht darin, eine neue leere Datenbank zu erstellen (Sie werden automatisch Eigentümer) und dann yo wiederherzustellen Dein BAK drüber. Diese page sagt Ihnen, wie ...

+0

Ja, Sie haben Recht.Wenn ich eine Anmeldung mit dem Namen 'admin' und pass = '123456admin'.und ich erstelle meine Datenbank in diesem Login, so dass ich die Datenbank nicht wiederherstellen kann. Ich bekomme einen Fehler. – Javad

+0

Sehr geehrte Ash8087 Bitte beantworten Sie – Javad

+0

Ist Ihr Admin-Benutzer ein Mitglied von dbcreator oder sysadmin? Ist dies nicht der Fall, kann er keine neue Datenbank erstellen. Siehe diese Frage: http://stackoverflow.com/questions/18059688/how-to-restore-database-in-servers-sql-server-database – Ash8087

Verwandte Themen