【发布时间】:2014-05-06 15:41:03
【问题描述】:
我正在使用存储在我项目的bin 文件夹中的 SQL Server 2008 R2 数据库构建 C# 应用程序。我使用 Linq to Sql 方法创建数据库并将其附加到我的项目中。
我遇到的问题是,当我尝试创建数据库的备份时。它抛出一个错误说
数据库 (database_name) 不存在确保名称输入正确。 BACKUP DATABASE 异常终止。
这是我在按钮单击事件中编写的代码:
try
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "SQL Server database backup files|*.bak";
sd.Title = "Create Database Backup";
if (sd.ShowDialog() == DialogResult.OK)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
string sqlStmt=string.Format("BACKUP DATABASE <database_name> TO DISK='{0}'",sd.FileName);
using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
{
conn.Open();
bu2.ExecuteNonQuery();
conn.Close();
MessageBox.Show("Backup Created Sucessfully");
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
我的连接字符串:
string connStr = ConfigurationManager.ConnectionStrings["project_name.Properties.Settings.project_nameConnectionString"].ConnectionString;
然后从我的 app.config 文件中
<add name="project_name.Properties.Settings.project_nameConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\database_name.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
所以如果有人能解决我的问题,那将会很有帮助。
【问题讨论】:
-
以下问题的答案似乎回答了这个问题:stackoverflow.com/questions/4466428/… 如果它没有完全回答问题,请提供一些额外的信息。
-
如果您在连接字符串中使用
AttachDbFileName=方法,则不能使用BACKUP DATABASE,因为该数据库文件并未真正附加到SQL Server Express 实例。这是该方法的众多缺点和缺点之一 -
你需要什么额外的细节@Ramhound&这里是我的连接字符串;字符串 connStr = ConfigurationManager.ConnectionStrings["project_name.Properties.Settings.project_nameConnectionString"].ConnectionString;然后从我的 app.config 文件
标签: c# sql-server database backup