C# 用C语言备份sqlserver数据库#
我正在尝试使用以下代码备份SQL Server数据库:C# 用C语言备份sqlserver数据库#,c#,sql-server,backup,C#,Sql Server,Backup,我正在尝试使用以下代码备份SQL Server数据库: SaveFileDialog saveFileDialog1 = new SaveFileDialog(); string database = con.Database.ToString(); try { saveFileDialog1.Filter = "SQL Server database backup files|*.bak"; saveFileDialog1.Title = "Database Backup";
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
string database = con.Database.ToString();
try
{
saveFileDialog1.Filter = "SQL Server database backup files|*.bak";
saveFileDialog1.Title = "Database Backup";
saveFileDialog1.FileName = "GestionStock.bak";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string sqlStmt = string.Format("USE MASTER BACKUP DATABASE [" + database +"] TO DISK='{0}'", saveFileDialog1.FileName);
using (SqlCommand bu2 = new SqlCommand(sqlStmt, con))
{
if (con.State != ConnectionState.Open)
{
con.Open();
}
bu2.ExecuteNonQuery();
con.Close();
MessageBox.Show("Base de données sauvegardée avec success");
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
此代码可以工作并创建备份文件,但当我尝试重新备份数据库时,收到以下错误消息:
如何修复它?在不使用
USE MASTER
的情况下尝试它。我尝试过,但出现了相同的错误。您是否确定字符串数据库
的实际值与字符串的值不同。空的
?是的,我确定它有一个value@user4340666,检查正在执行的备份命令。我敢打赌这不是您所期望的(即空数据库名)。也,请注意,备份文件路径来自SQL Server计算机,而不是客户端,因此除非对话框构造了SQL Server和客户端都可以访问的UNC路径,否则此应用程序无法远程运行。请在不使用USE MASTER
的情况下尝试。我尝试过,但出现了相同的错误。是否确实要确保字符串数据库
具有与字符串不同的值。为空?是的,我确信它具有value@user4340666,检查正在执行的备份命令。我敢打赌这不是您所期望的(即空数据库名)。另外,请注意,备份文件路径来自SQL Server计算机而不是客户端,因此除非对话框构造SQL Server和客户端都可以访问的UNC路径,否则此应用程序无法远程运行。