c#表示备份/恢复数据库

时间:2011-05-12 21:14:31

标签: c# sql-server database backup restore

我完全迷失在这里,我的时间不多了。让我解释一下我的情况:

我在C#express 2010和SQL Server Express 2008 R2中创建了一个软件。

现在,在我的软件的设置部分,用户应该能够手动备份/恢复数据库。

此外,他应该能够安排数据库的备份,这将在他将设置的时间运行。

我不知道如何让这两种方法都有效,我希望有人能指出我正确的方向。

  • 我需要能够创建一个 从中备份/恢复数据库 点击按钮
  • 我需要能够安排备份 过程

请记住,当用户在他的计算机上安装软件时,他不会安装sql server(我这样说是因为我的印象是SMO需要在客户端机器上预先安装sql server )。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以随时尝试Google

  1. Backup
  2. Restore
  3. Automate backup scripts使用SQL Job Agent
  4. 我假设您可以创建Windows窗体并连接OnClick个事件,并对数据库运行SqlCommand。然后,当用户按下相应的按钮时,只需使用上面的文档来编写适当的查询。

    BTW:这是一个Q& A网站,而不是紧急咨询顾问。不要说“我已经没时间了”这样的事情并没有写出大量的要求,并告诉我如何做到这一点。你绝对没有那种帮助。在演示您的工作和具体技术问题后,询问具体的问题。

答案 1 :(得分:0)

您可以查看此C#示例,了解如何使用SMO备份数据库

http://social.msdn.microsoft.com/forums/en-US/sqlexpress/thread/95750bdf-fcb1-45bf-9247-d7c0e1b9c8d2/

另一种选择是运行一个进程并从代码

调用sqlcmd

http://www.sqldbatips.com/showarticle.asp?ID=27

以下是一些执行流程的示例代码

string fileName = @"C:\Backup.sql";

ProcessStartInfo info = new ProcessStartInfo("sqlcmd", @" -S .\SQLExpress -U sa -d mydatabasename -o C:\sqlout.txt -i """ + @fileName + @""" -P");

 info.UseShellExecute = false;

 info.CreateNoWindow = true;

 info.WindowStyle = ProcessWindowStyle.Hidden;

 info.RedirectStandardOutput = true;

 Process p = new Process();

 p.StartInfo = info;

 p.Start();