【发布时间】:2016-07-31 05:29:58
【问题描述】:
我有点困惑 - 我正在为我的本地客户端创建一个 Windows Presentation Foundation (WPF) 应用程序,而客户端需要一个备份和恢复数据库工具
我正在使用带有实体框架的 SQL Server,使用数据库优先的方法;语言是 C#。
请指导我如何通过 C# 代码做到这一点。
【问题讨论】:
标签: c# .net sql-server wpf entity-framework
我有点困惑 - 我正在为我的本地客户端创建一个 Windows Presentation Foundation (WPF) 应用程序,而客户端需要一个备份和恢复数据库工具
我正在使用带有实体框架的 SQL Server,使用数据库优先的方法;语言是 C#。
请指导我如何通过 C# 代码做到这一点。
【问题讨论】:
标签: c# .net sql-server wpf entity-framework
您必须使用 TSQL 的 BACKUP 和 RESTORE 命令并通过 SqlCommand 对象调用它们,如下例所示:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
CreateBackup("Server=localhost\\bekidev;Database=ApplifyAengine;Trusted_Connection=True;MultipleActiveResultSets=true",
"test",
"C:\\temp\\test.bak");
}
private static void CreateBackup(string connectionString, string databaseName, string 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();
}
}
}
}
要进行恢复,请使用 TSQL RESTORE 命令。
请注意,SQL Server 备份和恢复是一个很大的话题,您应该深入研究其背后的理论,并仔细地将您的具体情况和要求映射到可用的功能。
【讨论】: