2015-07-19 130 views
-3

我有數據庫.bak文件,我需要將這個.bak文件中的數據加載到C#中的dataGridView中。如何從.bak文件加載數據

+0

你嘗試過什麼?它是什麼類型的文件?數十種文件格式多年來被稱爲'.bak'。 – GolezTrol

+0

爲什麼不使用新的數據庫名將文件備份文件安裝到sql server上。只需轉到SQL Server Management Studio並右鍵單擊數據庫即可。 – jdweng

+0

它是sql備份數據庫文件,我需要自動打開這個文件,不需要人工干預 – Matt5610

回答

1

谷歌是你的朋友

C#還原備份

FIRST RESULT

public void Restore(OdbcConnection sqlcon, string DatabaseFullPath, string backUpPath) 
    {  
      using (sqlcon) 
      { 
       string UseMaster = "USE master"; 
       OdbcCommand UseMasterCommand = new OdbcCommand(UseMaster, sqlcon); 
       UseMasterCommand.ExecuteNonQuery(); 
       // The below query will rollback any transaction which is 
       // running on that database and brings SQL Server database 
       // in a single user mode. 
       string Alter1 = @"ALTER DATABASE 
       [" + DatabaseFullPath + "] SET Single_User WITH Rollback Immediate"; 
       OdbcCommand Alter1Cmd = new OdbcCommand(Alter1, sqlcon); 
       Alter1Cmd.ExecuteNonQuery(); 
       // The below query will restore database file from disk 
       // where backup was taken .... 
       string Restore = @"RESTORE DATABASE 
       [" + DatabaseFullPath + "] FROM DISK = N'" + 
       backUpPath + @"' WITH FILE = 1, NOUNLOAD, STATS = 10"; 
       OdbcCommand RestoreCmd = new OdbcCommand(Restore, sqlcon); 
       RestoreCmd.ExecuteNonQuery(); 
       // the below query change the database back to multiuser 
       string Alter2 = @"ALTER DATABASE 
       [" + DatabaseFullPath + "] SET Multi_User"; 
       OdbcCommand Alter2Cmd = new OdbcCommand(Alter2, sqlcon); 
       Alter2Cmd.ExecuteNonQuery(); 
       Cursor.Current = Cursors.Default; 
      } 
     }