2013-01-09 66 views
2

我使用Visual Studio 2008創建了一個.mdf數據庫文件。我可以檢索數據並將其插入數據庫,但是當我想要備份時,我收到一個錯誤。如何從我創建的.mdf數據庫進行備份

我的代碼:

string con = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|C:\test\Data|\DB.mdf;Integrated Security=True;User Instance=True"; 

connect = new SqlConnection(con); 
connect.Open(); 

SqlCommand command = new SqlCommand(@"backup database [" + System.Windows.Forms.Application.StartupPath + "\\Data\\DB.mdf] to disk ='"+str+"' with init,stats=10",connect); 
command.ExecuteNonQuery(); 
connect.Close(); 

MessageBox.Show("The support of the database was successfully performed", "Back", MessageBoxButtons.OK, MessageBoxIcon.Information); 

的錯誤是:

錯誤:對鍵 'attachdbfilename' 無效值。

+1

+ 1'爲您的第一篇文章提供足夠的信息!歡迎! – Jacco

回答

1

這僅適用於SQL Server 2012和.NET 4.0.1。

如果你有這些,你應該可以使用AttachDbFilename。

無論如何,如果你的嵌入式數據庫有一個.MDF並且實例沒有運行,你可以複製.MDF和.LDF來備份。

1

似乎你的連接字符串不正確。

試試這個:

string con = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\test\Data\DB.mdf;Integrated Security=True;User Instance=True"; 

更多選項,看看:http://www.connectionstrings.com/sql-server-2005

+3

準確地說 - **要麼**它是完整的,完整的路徑(如你所示),**然後**它使用'| DataDirectory |'「宏」 - 例如:「@」Data Source =。\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ DB.mdf;集成安全性= True;用戶實例= True「;' - 但不能混合兩個 –

0

只需使用您的連接字符串作爲

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["<your connection string name from your app.config file>"].ConnectionString); 

我嘗試過了,它爲我工作。