using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
public void BackupDatabase(SqlConnectionStringBuilder csb, string backupPath)
{
// 创建服务器连接对象
ServerConnection connection = new ServerConnection(csb.DataSource, csb.UserID, csb.Password);
try
{
// 连接到服务器
Server server = new Server(connection);
// 创建备份对象
Backup backup = new Backup();
backup.Action = BackupActionType.Database;
backup.Database = csb.InitialCatalog;
// 设置备份路径
BackupDeviceItem backupDevice = new BackupDeviceItem(backupPath, DeviceType.File);
backup.Devices.Add(backupDevice);
// 执行备份操作
backup.SqlBackup(server);
}
catch (Exception ex)
{
// 处理异常
Console.WriteLine("备份数据库出错:" + ex.Message);
}
finally
{
// 关闭连接
connection.Disconnect();
}
}
public void RestoreDatabase(SqlConnectionStringBuilder csb, String backUpFile)
{
ServerConnection connection = new ServerConnection(csb.DataSource, csb.UserID, csb.Password);
Server sqlServer = new Server(connection);
Restore rstDatabase = new Restore();
rstDatabase.Action = RestoreActionType.Database;
rstDatabase.Database = csb.InitialCatalog;
BackupDeviceItem bkpDevice = new BackupDeviceItem(backUpFile, DeviceType.File);
rstDatabase.Devices.Add(bkpDevice);
rstDatabase.ReplaceDatabase = true;
rstDatabase.SqlRestore(sqlServer);
}
string saveAway = uiTBBackupDirectory.Text.Trim()+ "\\xxxx.bak"; string ConnectionString = ConfigurationManager.ConnectionStrings["SqlConnectionStr"].ToString(); string[] cons = ConnectionString.Split(';'); string[] databases = cons[3].Split('=');
把上边的字符串划分字段改改整到下边的配置内,下边为测试数据
SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
csb.ConnectionString = ConnectionString;
csb.DataSource = ".,1933";
csb.InitialCatalog = "xxxx";
csb.UserID = "sa";
csb.Password = "125612";
bakHelper.BackupDatabase(csb, saveAway);
备份的路径必须写全了,连文件名也写进去,要不就会出现权限问题了.
技术交流qq群:143280841
分类:
winform sunnyui
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2020-08-01 安装Chrome插件网下载的.CRX格式插件安装时提示程序包无效:“CRX_HEADER_INVALID”的解决方法
2019-08-01 sqlserve 数据库8G log文件也有10来g 按日期删除 方法