| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 642 人关注过本帖
标题:用程序备份数据库
只看楼主 加入收藏
wyx814
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2010-10-20
结帖率:82.35%
收藏
已结贴  问题点数:5 回复次数:6 
用程序备份数据库
那位朋友做过用代码备份和还原数据库的程序?希望能跟我分享下……
搜索更多相关主题的帖子: 数据库 
2010-10-28 07:38
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:2 
程序代码:
     (1)数据备份语句:backup database  数据库名 to disk='保存路径\db_Name.bak'
     (2)数据恢复语句:restore database 数据库名 from disk='保存路径\db_Name.bak'   WITH MOVE 'dbName_Data' TO 'c:\tcomcrm20041217.mdf', --数据文件还原后存放的新位置


         //数据库备份
         private void btnBak_Click(object sender, EventArgs e) //备份
        {
            string saveAway = this.tbxBakLoad.Text.ToString().Trim();
            string cmdText = @"backup database " + System.Configuration.ConfigurationSettings.AppSettings["dbName"] + " to disk='" + saveAway + "'";
            BakReductSql(cmdText,true);           
        }
        //数据库还原
        private void btnReduct_Click(object sender, EventArgs e)  //还原
        {
            string openAway = this.tbxReductLoad.Text.ToString().Trim();//读取文件的路径
            string cmdText = @"restore database " + System.Configuration.ConfigurationSettings.AppSettings["dbName"] + " from disk='" + openAway + "'";           
            BakReductSql(cmdText,false);
        }
        /// <summary>
        /// 对数据库的备份和恢复操作,Sql语句实现
        /// </summary>
        /// <param name="cmdText">实现备份或恢复的Sql语句</param>
        /// <param name="isBak">该操作是否为备份操作,是为true否,为false</param>
        private void BakReductSql(string cmdText,bool isBak)
        {
            SqlCommand cmdBakRst = new SqlCommand();
            SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=master;uid=sa;pwd=;");
            try
            {
                conn.Open();
                cmdBakRst.Connection = conn;
                 = CommandType.Text;
                if (!isBak)     //如果是恢复操作
                {
                    string setOffline = "Alter database GroupMessage Set Offline With rollback immediate ";
                    string setOnline = " Alter database GroupMessage Set Online With Rollback immediate";
                     = setOffline + cmdText + setOnline;
                }
                else
                {
                     = cmdText;
                }
                cmdBakRst.ExecuteNonQuery();
                if (!isBak)
                {
                    MessageBox.Show("数据库还原成功", "系统消息");
                }
                else
                {
                    MessageBox.Show("备份成功", "系统消息");
                }
            }
            catch (SqlException sexc)
            {
                MessageBox.Show("操作失败");
            }
            catch (Exception ex)
            {
                MessageBox.Show("操作失败");
            }
            finally
            {
                cmdBakRst.Dispose();
                conn.Close();
                conn.Dispose();
            }
        }


[ 本帖最后由 wangnannan 于 2010-10-28 15:08 编辑 ]

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-10-28 08:14
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:1 
回复 3楼 dllnetspy


[ 本帖最后由 wangnannan 于 2010-10-28 15:08 编辑 ]

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-10-28 14:26
lvjianwu
Rank: 2
等 级:论坛游民
帖 子:12
专家分:12
注 册:2009-4-14
收藏
得分:1 
呵呵 不会吧
2010-10-28 14:55
iwanna2010
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:8
专家分:100
注 册:2010-10-27
收藏
得分:0 
弄了dll有什么用啊 什么都学不到 纯属炫耀
2010-10-28 15:00
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
收藏
得分:1 
回复 2楼 wangnannan
很详细哦!!学习了!!
2010-10-28 15:22
天空1990
Rank: 1
来 自:邯郸
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-10-28
收藏
得分:0 

加油!
2010-10-28 23:25
快速回复:用程序备份数据库
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029617 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved