【问题标题】:c# express back up/restore databasec# express 备份/恢复数据库
【发布时间】:2012-11-06 17:34:43
【问题描述】:

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

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

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

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

我不知道如何让这两个工作都正常工作,我希望这里有人可以为我指明正确的方向。

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

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

谢谢

【问题讨论】:

标签: c# sql-server database backup restore


【解决方案1】:

你总是可以试试Google

  1. Backup
  2. Restore
  3. Automate backup scripts 使用 SQL Job Agent

我假设您可以创建 Windows 窗体并连接 OnClick 事件,并针对数据库运行 SqlCommand。然后,只需在用户按下相应按钮时使用上述文档编写相应的查询即可。

顺便说一句:这是一个问答网站,而不是应急顾问店。不要说“我没时间了”之类的话,也不要写出大量的需求清单然后告诉我该怎么做。那样你绝对不会得到任何帮助。在展示您的努力和具体技术问题后提出具体问题。

【讨论】:

  • 想象一下像 StackOverflow 一样的紧急咨询店会有多盈利。 (虽然专家交流尝试过,但失败了。)
【解决方案2】:

您可以查看使用 SMO 备份数据库的 C# 示例

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();

【讨论】:

  • 谢谢。我会更详细地研究这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多