簡體   English   中英

如何在c#.net中備份和還原

[英]How to backup and restore in c#.net

我開發了Windows C#.net應用程序,並使用Sqlserver數據庫。 我在一個名為admin的特殊用戶中創建了數據庫。 現在,我想備份和還原數據庫。

所以我備份成功,但是恢復時出錯

 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 =@n", 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);
            }
        }

錯誤圖片: 錯誤圖片

我已授予這些權限,但無法正常工作:

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;

確保您具有正確權限的最簡單方法是創建一個新的空白數據庫(您將自動成為所有者),然后在該數據庫上還原BAK。 頁面告訴您如何...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM