用WINFORM实现数据库备份管理

这段时间公司网站服务器老出问题,为了安全需要把数据备份;打开网站后台,或者用SQL Server来备份非常麻烦,而且公司网站非常多,数据库不只有SQLSERVER还有MYSQL;为了统一管理,决定用C#写一个WINFORM来实现。
步骤如下:
1、创建WINFORM,加入button1按钮;双击按钮进入代码编辑;
2、写入备份数据库代码;代码如下:
        private void button1_Click(object sender, EventArgs e)
        {
            string path = @"D:\www\Temp\3nhdata" +DateTime.Now.ToString("yyyy-MM-dd")+".bak"; // 数据库备份路径与名称
            string backupstr = "backup database [3nhdata] to disk='" + path + "';"; // 数据库备份语句
            SqlConnection con = new SqlConnection("server=***;uid=sa;pwd=***;"); // 数据库连接
            SqlCommand cmd = new SqlCommand(backupstr, con);
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
                MessageBox.Show("备份成功!");
            }
            catch
            {
                MessageBox.Show("备份失败!");
            }
            finally
            {
                con.Close();
            }
        }
3、加入这段代码后运行程序,点击按钮,程序显示数据“备份成功”;为了方便起见,必须同时将数据备份下载到本地;.net有非常多的下载控件来实现下载;但是在这里完全不需要如此复杂,我们知道,IE有这样的功能,当打开网页时,会自动识别是浏览的网页文件还是需要下载的数据包;所以只需用WINFORM用程序实现默认浏览器打开要下载的文件地址即可,下面的函数可以实现该功能。
        public void showWebPage(string webpage)
        {
            ProcessStartInfo info = new ProcessStartInfo();
            info.UseShellExecute = true;
            info.FileName = webpage;
            Process.Start(info);
        }
4、在 MessageBox.Show("备份成功!") 代码下面加入showWebPage(下载地址)实现下载功能;运行程序发现,IE无法判断BAK文件格式;将BAK文件文件格式改成RAR即可。整理一下代码,最终代码如下:
namespace BackupData
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string path = "3nhdata" +DateTime.Now.ToString("yyyy-MM-dd") + ".rar"; // 数据库备份名称
            string backupstr = "backup database [3nhdata] to disk='" + @"D:\www\Temp\"+ path + "';"; // 数据库备份语句
            SqlConnection con = new SqlConnection("server=***;uid=sa;pwd=***;"); // 数据库连接
            SqlCommand cmd = new SqlCommand(backupstr, con);
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
                MessageBox.Show("备份成功!");
                showWebPage("http://www.***.com/Temp/"+path);
            }
            catch
            {
                MessageBox.Show("备份失败!");
            }
            finally
            {
                con.Close();
            }
        }
        public void showWebPage(string webpage) // 打开网页
        {
            ProcessStartInfo info = new ProcessStartInfo();
            info.UseShellExecute = true;
            info.FileName = webpage;
            Process.Start(info);
        }
    }
}

posted @ 2013-04-08 17:22  烟雨人生  阅读(1095)  评论(0)    收藏  举报