Stackoverflow中已经多次回答了这个问题,但我没有为我的项目找到合适的解决方案。
让我先告诉你我的代码:
namespace ConsoleDBManagement
{
class Program
{
static void Main(string[] args)
{
//Metioned here your database name
string dbname = "newDb";
SqlConnection sqlcon = new SqlConnection();
SqlCommand sqlcmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
sqlcon.ConnectionString = @"Server=ABC-PC\SQLEXPRESS;database=" + dbname + ";uid=dran;pwd=sri;";
//Enter destination directory where backup file stored
string destdir = "D:\\Working Projects";
//Check that directory already there otherwise create
if (!System.IO.Directory.Exists(destdir))
{
System.IO.Directory.CreateDirectory("D:\\Working Projects");
}
try
{
//Open connection
sqlcon.Open();
//query to take backup database
//System.IO.File.Create("D:\\Working Projects\\FullBackUp.BAK");
sqlcmd = new SqlCommand("backup database newDb to disk='" + destdir + "\\FullBackUp.BAK'", sqlcon);
sqlcmd.ExecuteNonQuery();
//Close connection
sqlcon.Close();
//Response.Write("Backup database successfully");
}
catch (Exception ex)
{
//Response.Write("Error During backup database!");
}
}
}
}
我在执行查询时遇到异常。
无法打开备份设备&D:\ Working Projects \ FullBackUp.BAK'。操作系统错误3(系统找不到指定的路径。)。
BACKUP DATABASE正在异常终止。
请给我你的建议。
答案 0 :(得分:1)
在使用SQL身份验证登录时运行备份和/或其他外部文件相关命令时,Windows安全上下文是SQL Service的安全上下文。
您的问题与Backup Permissions重复。授予SQL服务帐户/组权限,或使用具有该路径权限的Windows身份验证登录名运行备份。