3

当我进行数据库备份时,我收到数据库不存在的错误,但我可以很好地附加数据库,并且其他过程(如数据插入和更新)工作正常。但是当我进行数据库备份时,它会出现以下错误。

我显示错误屏幕截图和备份按钮代码

string cnstr="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\fees_data.mdf;Integrated Security=True;User Instance=True;"



SqlConnection connect;
        connect = new SqlConnection(cnstr);
        connect.Open();
        if (txtdname.Text == "")
        { dname = "Default.bak"; }
        else
        { dname = txtdname.Text + ".bak"; }
        SqlCommand command;
        command = new SqlCommand(@"backup database fees_data to disk ='c:\DATABackup\" + dname + "'", connect);
        command.ExecuteNonQuery();
        connect.Close();

当我单击备份按钮时,我收到错误:

“数据库‘fees_data’不存在。确保名称输入正确。BACKUP DATABASE 异常终止。”

4

2 回答 2

3

数据库名称可能与 .mdf 文件名不同。

运行此查询时会得到什么结果?

select name from sys.databases;

从那里使用正确的名称。

于 2012-09-25T17:35:22.413 回答
1

而不是这段代码

SqlCommand command;
   command = new SqlCommand(@"backup database fees_data to disk ='c:\DATABackup\" + dname + "'", connect);
   command.ExecuteNonQuery();

使用下面写的代码

string fullPath= "";
 string executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
 fullPath= (System.IO.Path.GetDirectoryName(executable));
 AppDomain.CurrentDomain.SetData("DataDirectory", fullPath);
 fullPath=fullPath+"\\fees_data.mdf";

 SqlCommand command;
 command = new SqlCommand(@"backup ['"+fullPath+"'] to disk ='c:\DATABackup\" + dname + "'", connect);
 command.ExecuteNonQuery();
于 2014-10-21T07:55:50.563 回答