我有一个控制台应用程序备份我的SQL Server数据库。
我使用了以下代码:
static void CreateBackup(string connectionString, string databaseName, string backupFilePath)
{
backupFilePath = backupFilePath + "\\" + databaseName + ".bak";
backupFilePath = @"" + backupFilePath;
var backupCommand = "BACKUP DATABASE @databaseName TO DISK = @backupFilePath";
using (var conn = new SqlConnection(connectionString))
using (var cmd = new SqlCommand(backupCommand, conn))
{
conn.Open();
cmd.Parameters.AddWithValue("@databaseName", databaseName);
cmd.Parameters.AddWithValue("@backupFilePath", backupFilePath);
cmd.ExecuteNonQuery();
}
}
当我启动应用程序时,总是出现相同的错误:
异常(0x 80131904):参数化查询“(@databaseName nvarchar(4000),@backupFilePath nvarchar(5))BACKUP”需要参数“@ databaseName,”但未提供该参数.
我该如何解决这个问题?
1条答案
按热度按时间4ngedf3f1#
BACKUP DATABASE
中的数据库名称是SYS Name,不能是字符串变量,您可以将backupCommand构建为: