首先需要添加对SQLDMO引用
1.实现数据库的备份:
 1
 /**//// <summary>
/**//// <summary>
2 /// 数据库备份
        /// 数据库备份
3 /// </summary>
        /// </summary>
4 /// <returns>备份是否成功</returns>
        /// <returns>备份是否成功</returns>
5 public bool DbBackup()
        public bool DbBackup()
6
 
         {
{
7 string path = CreatePath();
            string path = CreatePath();
8 SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
9 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
10 try
            try
11
 
             {
{
12 oSQLServer.LoginSecure = false;
                oSQLServer.LoginSecure = false;
13 oSQLServer.Connect(server,uid, pwd);
                oSQLServer.Connect(server,uid, pwd);
14 oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
15 oBackup.Database = database;
                oBackup.Database = database;
16 oBackup.Files = path;
                oBackup.Files = path;
17 oBackup.BackupSetName = database;
                oBackup.BackupSetName = database;
18 oBackup.BackupSetDescription = "数据库备份";
                oBackup.BackupSetDescription = "数据库备份";
19 oBackup.Initialize = true;
                oBackup.Initialize = true;
20 oBackup.SQLBackup(oSQLServer);
                oBackup.SQLBackup(oSQLServer);
21
22 return true;
                return true;
23 }
            }
24 catch(Exception ex)
            catch(Exception ex)
25
 
             {
{
26 return false;
                return false;
27 throw ex;
                throw ex;
28 }
            }
29 finally
            finally
30
 
             {
{
31 oSQLServer.DisConnect();
                oSQLServer.DisConnect();
32 }
            }
33 }
        }

 /**//// <summary>
/**//// <summary>2
 /// 数据库备份
        /// 数据库备份3
 /// </summary>
        /// </summary>4
 /// <returns>备份是否成功</returns>
        /// <returns>备份是否成功</returns>5
 public bool DbBackup()
        public bool DbBackup()6

 
         {
{7
 string path = CreatePath();
            string path = CreatePath();8
 SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();9
 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();10
 try
            try11

 
             {
{12
 oSQLServer.LoginSecure = false;
                oSQLServer.LoginSecure = false;13
 oSQLServer.Connect(server,uid, pwd);
                oSQLServer.Connect(server,uid, pwd);14
 oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;15
 oBackup.Database = database;
                oBackup.Database = database;16
 oBackup.Files = path;
                oBackup.Files = path;17
 oBackup.BackupSetName = database;
                oBackup.BackupSetName = database;18
 oBackup.BackupSetDescription = "数据库备份";
                oBackup.BackupSetDescription = "数据库备份";19
 oBackup.Initialize = true;
                oBackup.Initialize = true;20
 oBackup.SQLBackup(oSQLServer);
                oBackup.SQLBackup(oSQLServer);21

22
 return true;
                return true;23
 }
            }24
 catch(Exception ex)
            catch(Exception ex)25

 
             {
{26
 return false;
                return false;27
 throw ex;
                throw ex;28
 }
            }29
 finally
            finally30

 
             {
{31
 oSQLServer.DisConnect();
                oSQLServer.DisConnect();32
 }
            }33
 }
        }2.实现数据库恢复:
在恢复时要注意先杀掉当前数据库的所有进程
 1
 /**//// <summary>
/**//// <summary>
2 /// 数据库恢复
        /// 数据库恢复
3 /// </summary>
        /// </summary>
4 public string DbRestore()
        public string DbRestore()
5
 
         {
{
6 if(exepro()!=true)//执行存储过程
            if(exepro()!=true)//执行存储过程
7
 
             {
{
8 return "操作失败";
                return "操作失败";
9 }
            }
10 else
            else
11
 
             {
{
12 SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
13 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
14 try
                try
15
 
                 {
{
16 exepro();
                    exepro();
17 oSQLServer.LoginSecure = false;
                    oSQLServer.LoginSecure = false;
18 oSQLServer.Connect(server, uid, pwd);
                    oSQLServer.Connect(server, uid, pwd);
19 oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
20 oRestore.Database = database;
                    oRestore.Database = database;
21
 /**////自行修改
                    /**////自行修改
22 oRestore.Files = @"d:\aaa\aaa.bak";
                    oRestore.Files = @"d:\aaa\aaa.bak";
23 oRestore.FileNumber = 1;
                    oRestore.FileNumber = 1;
24 oRestore.ReplaceDatabase = true;
                    oRestore.ReplaceDatabase = true;
25 oRestore.SQLRestore(oSQLServer);
                    oRestore.SQLRestore(oSQLServer);
26
27 return "ok";
                    return "ok";
28 }
                }
29 catch(Exception e)
                catch(Exception e)
30
 
                 {
{
31 return "恢复数据库失败";
                    return "恢复数据库失败";
32 throw e;
                    throw e;
33 }
                }
34 finally
                finally
35
 
                 {
{
36 oSQLServer.DisConnect();
                    oSQLServer.DisConnect();
37 }
                }
38 }
            }
39 }
        }
40 
        
41
 /**//// <summary>
        /**//// <summary>
42 /// 杀死当前库的所有进程
        /// 杀死当前库的所有进程
43 /// </summary>
        /// </summary>
44 /// <returns></returns>
        /// <returns></returns>
45 private bool exepro()
        private bool exepro()
46
 
         {
{
47
48 SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
49 SqlCommand cmd = new SqlCommand("killspid",conn1);
            SqlCommand cmd = new SqlCommand("killspid",conn1);
50 cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandType = CommandType.StoredProcedure;
51 cmd.Parameters.Add("@dbname","aaa");
            cmd.Parameters.Add("@dbname","aaa");
52 try
            try
53
 
             {
{
54 conn1.Open();
                conn1.Open();
55 cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
56 return true;
                return true;
57 }
            }
58 catch(Exception ex)
            catch(Exception ex)
59
 
             {
{
60 return false;
                return false;
61 }
            }
62 finally
            finally
63
 
             {
{
64 conn1.Close();
                conn1.Close();
65 }
            }
66 }
        }

 /**//// <summary>
/**//// <summary>2
 /// 数据库恢复
        /// 数据库恢复3
 /// </summary>
        /// </summary>4
 public string DbRestore()
        public string DbRestore()5

 
         {
{6
 if(exepro()!=true)//执行存储过程
            if(exepro()!=true)//执行存储过程7

 
             {
{8
 return "操作失败";
                return "操作失败";9
 }
            }10
 else
            else11

 
             {
{12
 SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();13
 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();14
 try
                try15

 
                 {
{16
 exepro();
                    exepro();17
 oSQLServer.LoginSecure = false;
                    oSQLServer.LoginSecure = false;18
 oSQLServer.Connect(server, uid, pwd);
                    oSQLServer.Connect(server, uid, pwd);19
 oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;20
 oRestore.Database = database;
                    oRestore.Database = database;21

 /**////自行修改
                    /**////自行修改22
 oRestore.Files = @"d:\aaa\aaa.bak";
                    oRestore.Files = @"d:\aaa\aaa.bak";23
 oRestore.FileNumber = 1;
                    oRestore.FileNumber = 1;24
 oRestore.ReplaceDatabase = true;
                    oRestore.ReplaceDatabase = true;25
 oRestore.SQLRestore(oSQLServer);
                    oRestore.SQLRestore(oSQLServer);26

27
 return "ok";
                    return "ok";28
 }
                }29
 catch(Exception e)
                catch(Exception e)30

 
                 {
{31
 return "恢复数据库失败";
                    return "恢复数据库失败";32
 throw e;
                    throw e;33
 }
                }34
 finally
                finally35

 
                 {
{36
 oSQLServer.DisConnect();
                    oSQLServer.DisConnect();37
 }
                }38
 }
            }39
 }
        }40
 
        41

 /**//// <summary>
        /**//// <summary>42
 /// 杀死当前库的所有进程
        /// 杀死当前库的所有进程43
 /// </summary>
        /// </summary>44
 /// <returns></returns>
        /// <returns></returns>45
 private bool exepro()
        private bool exepro()46

 
         {
{47

48
 SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");49
 SqlCommand cmd = new SqlCommand("killspid",conn1);
            SqlCommand cmd = new SqlCommand("killspid",conn1);50
 cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandType = CommandType.StoredProcedure;51
 cmd.Parameters.Add("@dbname","aaa");
            cmd.Parameters.Add("@dbname","aaa");52
 try
            try53

 
             {
{54
 conn1.Open();
                conn1.Open();55
 cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();56
 return true;
                return true;57
 }
            }58
 catch(Exception ex)
            catch(Exception ex)59

 
             {
{60
 return false;
                return false;61
 }
            }62
 finally
            finally63

 
             {
{64
 conn1.Close();
                conn1.Close();65
 }
            }66
 }
        }完整的操作类如下:
  1 using System;
using System;
2 using System.Collections;
using System.Collections;
3 using System.Data;
using System.Data;
4 using System.Data.SqlClient;
using System.Data.SqlClient;
5
6 namespace DbBackUp
namespace DbBackUp
7

 {
{
8
 /**//// <summary>
    /**//// <summary>
9 /// 创建人:Terrylee
    /// 创建人:Terrylee
10 /// 创建时间:2005年8月1日
    /// 创建时间:2005年8月1日
11 /// 功能描述:实现数据库的备份和还原
    /// 功能描述:实现数据库的备份和还原
12 /// 更新记录:
    /// 更新记录:
13 /// </summary>
    /// </summary>
14 public class DbOperate
    public class DbOperate
15
 
     {
{    
16
 /**//// <summary>
        /**//// <summary>
17 /// 服务器
        /// 服务器
18 /// </summary>
        /// </summary>
19 private string server;
        private string server;
20 
        
21
 /**//// <summary>
        /**//// <summary>
22 /// 登录名
        /// 登录名
23 /// </summary>
        /// </summary>
24 private string uid;
        private string uid;
25 
        
26
 /**//// <summary>
        /**//// <summary>
27 /// 登录密码
        /// 登录密码
28 /// </summary>
        /// </summary>
29 private string pwd;
        private string pwd;
30 
        
31
 /**//// <summary>
        /**//// <summary>
32 /// 要操作的数据库
        /// 要操作的数据库
33 /// </summary>
        /// </summary>
34 private string database;
        private string database;
35 
        
36
 /**//// <summary>
        /**//// <summary>
37 /// 数据库连接字符串
        /// 数据库连接字符串
38 /// </summary>
        /// </summary>
39 private string conn;
        private string conn;
40
41
 /**//// <summary>
        /**//// <summary>
42 /// DbOperate类的构造函数
        /// DbOperate类的构造函数
43 /// 在这里进行字符串的切割,获取服务器,登录名,密码,数据库
        /// 在这里进行字符串的切割,获取服务器,登录名,密码,数据库
44 /// </summary>
        /// </summary>
45 public DbOperate()
        public DbOperate()
46
 
         {
{
47 conn = System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();
            conn = System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();
48 server = StringCut(conn,"server=",";");
            server = StringCut(conn,"server=",";");
49 uid = StringCut(conn,"uid=",";");
            uid = StringCut(conn,"uid=",";");
50 pwd = StringCut(conn,"pwd=",";");
            pwd = StringCut(conn,"pwd=",";");
51 database = StringCut(conn,"database=",";");
            database = StringCut(conn,"database=",";");
52 }
        }
53 
        
54
 /**//// <summary>
        /**//// <summary>
55 /// 切割字符串
        /// 切割字符串
56 /// </summary>
        /// </summary>
57 /// <param name="str"></param>
        /// <param name="str"></param>
58 /// <param name="bg"></param>
        /// <param name="bg"></param>
59 /// <param name="ed"></param>
        /// <param name="ed"></param>
60 /// <returns></returns>
        /// <returns></returns>
61 public string StringCut(string str,string bg,string ed)
        public string StringCut(string str,string bg,string ed)
62
 
         {
{
63 string sub;
            string sub;
64 sub=str.Substring(str.IndexOf(bg)+bg.Length);
            sub=str.Substring(str.IndexOf(bg)+bg.Length);
65 sub=sub.Substring(0,sub.IndexOf(";"));
            sub=sub.Substring(0,sub.IndexOf(";"));
66 return sub;
            return sub;
67 }
        }
68 
        
69
 /**//// <summary>
        /**//// <summary>
70 /// 构造文件名
        /// 构造文件名
71 /// </summary>
        /// </summary>
72 /// <returns>文件名</returns>
        /// <returns>文件名</returns>
73 private string CreatePath()
        private string CreatePath()
74
 
         {
{
75 string CurrTime = System.DateTime.Now.ToString();
            string CurrTime = System.DateTime.Now.ToString();
76 CurrTime = CurrTime.Replace("-","");
            CurrTime = CurrTime.Replace("-","");
77 CurrTime = CurrTime.Replace(":","");
            CurrTime = CurrTime.Replace(":","");
78 CurrTime = CurrTime.Replace(" ","");
            CurrTime = CurrTime.Replace(" ","");
79 CurrTime = CurrTime.Substring(0,12);
            CurrTime = CurrTime.Substring(0,12);
80 string path = @"d:\\aaa\\";
            string path = @"d:\\aaa\\";
81 path += database;
            path += database;
82 path += "_db_";
            path += "_db_";
83 path += CurrTime;
            path += CurrTime;
84 path += ".BAK";
            path += ".BAK";
85 return path;
            return path;
86 }
        }
87
88
 /**//// <summary>
        /**//// <summary>
89 /// 数据库备份
        /// 数据库备份
90 /// </summary>
        /// </summary>
91 /// <returns>备份是否成功</returns>
        /// <returns>备份是否成功</returns>
92 public bool DbBackup()
        public bool DbBackup()
93
 
         {
{
94 string path = CreatePath();
            string path = CreatePath();
95 SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
96 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
97 try
            try
98
 
             {
{
99 oSQLServer.LoginSecure = false;
                oSQLServer.LoginSecure = false;
100 oSQLServer.Connect(server,uid, pwd);
                oSQLServer.Connect(server,uid, pwd);
101 oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
102 oBackup.Database = database;
                oBackup.Database = database;
103 oBackup.Files = path;
                oBackup.Files = path;
104 oBackup.BackupSetName = database;
                oBackup.BackupSetName = database;
105 oBackup.BackupSetDescription = "数据库备份";
                oBackup.BackupSetDescription = "数据库备份";
106 oBackup.Initialize = true;
                oBackup.Initialize = true;
107 oBackup.SQLBackup(oSQLServer);
                oBackup.SQLBackup(oSQLServer);
108
109 return true;
                return true;
110 }
            }
111 catch(Exception ex)
            catch(Exception ex)
112
 
             {
{
113 return false;
                return false;
114 throw ex;
                throw ex;
115 }
            }
116 finally
            finally
117
 
             {
{
118 oSQLServer.DisConnect();
                oSQLServer.DisConnect();
119 }
            }
120 }
        }
121
122
 /**//// <summary>
        /**//// <summary>
123 /// 数据库恢复
        /// 数据库恢复
124 /// </summary>
        /// </summary>
125 public string DbRestore()
        public string DbRestore()
126
 
         {
{
127 if(exepro()!=true)//执行存储过程
            if(exepro()!=true)//执行存储过程
128
 
             {
{
129 return "操作失败";
                return "操作失败";
130 }
            }
131 else
            else
132
 
             {
{
133 SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
134 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
135 try
                try
136
 
                 {
{
137 exepro();
                    exepro();
138 oSQLServer.LoginSecure = false;
                    oSQLServer.LoginSecure = false;
139 oSQLServer.Connect(server, uid, pwd);
                    oSQLServer.Connect(server, uid, pwd);
140 oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
141 oRestore.Database = database;
                    oRestore.Database = database;
142
 /**////自行修改
                    /**////自行修改
143 oRestore.Files = @"d:\aaa\aaa.bak";
                    oRestore.Files = @"d:\aaa\aaa.bak";
144 oRestore.FileNumber = 1;
                    oRestore.FileNumber = 1;
145 oRestore.ReplaceDatabase = true;
                    oRestore.ReplaceDatabase = true;
146 oRestore.SQLRestore(oSQLServer);
                    oRestore.SQLRestore(oSQLServer);
147
148 return "ok";
                    return "ok";
149 }
                }
150 catch(Exception e)
                catch(Exception e)
151
 
                 {
{
152 return "恢复数据库失败";
                    return "恢复数据库失败";
153 throw e;
                    throw e;
154 }
                }
155 finally
                finally
156
 
                 {
{
157 oSQLServer.DisConnect();
                    oSQLServer.DisConnect();
158 }
                }
159 }
            }
160 }
        }
161 
        
162
 /**//// <summary>
        /**//// <summary>
163 /// 杀死当前库的所有进程
        /// 杀死当前库的所有进程
164 /// </summary>
        /// </summary>
165 /// <returns></returns>
        /// <returns></returns>
166 private bool exepro()
        private bool exepro()
167
 
         {
{
168
169 SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
170 SqlCommand cmd = new SqlCommand("killspid",conn1);
            SqlCommand cmd = new SqlCommand("killspid",conn1);
171 cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandType = CommandType.StoredProcedure;
172 cmd.Parameters.Add("@dbname","aaa");
            cmd.Parameters.Add("@dbname","aaa");
173 try
            try
174
 
             {
{
175 conn1.Open();
                conn1.Open();
176 cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
177 return true;
                return true;
178 }
            }
179 catch(Exception ex)
            catch(Exception ex)
180
 
             {
{
181 return false;
                return false;
182 }
            }
183 finally
            finally
184
 
             {
{
185 conn1.Close();
                conn1.Close();
186 }
            }
187 }
        }
188
189 }
    }
190
191 }
}
192
 using System;
using System;2
 using System.Collections;
using System.Collections;3
 using System.Data;
using System.Data;4
 using System.Data.SqlClient;
using System.Data.SqlClient;5

6
 namespace DbBackUp
namespace DbBackUp7


 {
{8

 /**//// <summary>
    /**//// <summary>9
 /// 创建人:Terrylee
    /// 创建人:Terrylee10
 /// 创建时间:2005年8月1日
    /// 创建时间:2005年8月1日11
 /// 功能描述:实现数据库的备份和还原
    /// 功能描述:实现数据库的备份和还原12
 /// 更新记录:
    /// 更新记录:13
 /// </summary>
    /// </summary>14
 public class DbOperate
    public class DbOperate15

 
     {
{    16

 /**//// <summary>
        /**//// <summary>17
 /// 服务器
        /// 服务器18
 /// </summary>
        /// </summary>19
 private string server;
        private string server;20
 
        21

 /**//// <summary>
        /**//// <summary>22
 /// 登录名
        /// 登录名23
 /// </summary>
        /// </summary>24
 private string uid;
        private string uid;25
 
        26

 /**//// <summary>
        /**//// <summary>27
 /// 登录密码
        /// 登录密码28
 /// </summary>
        /// </summary>29
 private string pwd;
        private string pwd;30
 
        31

 /**//// <summary>
        /**//// <summary>32
 /// 要操作的数据库
        /// 要操作的数据库33
 /// </summary>
        /// </summary>34
 private string database;
        private string database;35
 
        36

 /**//// <summary>
        /**//// <summary>37
 /// 数据库连接字符串
        /// 数据库连接字符串38
 /// </summary>
        /// </summary>39
 private string conn;
        private string conn;40

41

 /**//// <summary>
        /**//// <summary>42
 /// DbOperate类的构造函数
        /// DbOperate类的构造函数43
 /// 在这里进行字符串的切割,获取服务器,登录名,密码,数据库
        /// 在这里进行字符串的切割,获取服务器,登录名,密码,数据库44
 /// </summary>
        /// </summary>45
 public DbOperate()
        public DbOperate()46

 
         {
{47
 conn = System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();
            conn = System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();48
 server = StringCut(conn,"server=",";");
            server = StringCut(conn,"server=",";");49
 uid = StringCut(conn,"uid=",";");
            uid = StringCut(conn,"uid=",";");50
 pwd = StringCut(conn,"pwd=",";");
            pwd = StringCut(conn,"pwd=",";");51
 database = StringCut(conn,"database=",";");
            database = StringCut(conn,"database=",";");52
 }
        }53
 
        54

 /**//// <summary>
        /**//// <summary>55
 /// 切割字符串
        /// 切割字符串56
 /// </summary>
        /// </summary>57
 /// <param name="str"></param>
        /// <param name="str"></param>58
 /// <param name="bg"></param>
        /// <param name="bg"></param>59
 /// <param name="ed"></param>
        /// <param name="ed"></param>60
 /// <returns></returns>
        /// <returns></returns>61
 public string StringCut(string str,string bg,string ed)
        public string StringCut(string str,string bg,string ed)62

 
         {
{63
 string sub;
            string sub;64
 sub=str.Substring(str.IndexOf(bg)+bg.Length);
            sub=str.Substring(str.IndexOf(bg)+bg.Length);65
 sub=sub.Substring(0,sub.IndexOf(";"));
            sub=sub.Substring(0,sub.IndexOf(";"));66
 return sub;
            return sub;67
 }
        }68
 
        69

 /**//// <summary>
        /**//// <summary>70
 /// 构造文件名
        /// 构造文件名71
 /// </summary>
        /// </summary>72
 /// <returns>文件名</returns>
        /// <returns>文件名</returns>73
 private string CreatePath()
        private string CreatePath()74

 
         {
{75
 string CurrTime = System.DateTime.Now.ToString();
            string CurrTime = System.DateTime.Now.ToString();76
 CurrTime = CurrTime.Replace("-","");
            CurrTime = CurrTime.Replace("-","");77
 CurrTime = CurrTime.Replace(":","");
            CurrTime = CurrTime.Replace(":","");78
 CurrTime = CurrTime.Replace(" ","");
            CurrTime = CurrTime.Replace(" ","");79
 CurrTime = CurrTime.Substring(0,12);
            CurrTime = CurrTime.Substring(0,12);80
 string path = @"d:\\aaa\\";
            string path = @"d:\\aaa\\";81
 path += database;
            path += database;82
 path += "_db_";
            path += "_db_";83
 path += CurrTime;
            path += CurrTime;84
 path += ".BAK";
            path += ".BAK";85
 return path;
            return path;86
 }
        }87

88

 /**//// <summary>
        /**//// <summary>89
 /// 数据库备份
        /// 数据库备份90
 /// </summary>
        /// </summary>91
 /// <returns>备份是否成功</returns>
        /// <returns>备份是否成功</returns>92
 public bool DbBackup()
        public bool DbBackup()93

 
         {
{94
 string path = CreatePath();
            string path = CreatePath();95
 SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();96
 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();97
 try
            try98

 
             {
{99
 oSQLServer.LoginSecure = false;
                oSQLServer.LoginSecure = false;100
 oSQLServer.Connect(server,uid, pwd);
                oSQLServer.Connect(server,uid, pwd);101
 oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;102
 oBackup.Database = database;
                oBackup.Database = database;103
 oBackup.Files = path;
                oBackup.Files = path;104
 oBackup.BackupSetName = database;
                oBackup.BackupSetName = database;105
 oBackup.BackupSetDescription = "数据库备份";
                oBackup.BackupSetDescription = "数据库备份";106
 oBackup.Initialize = true;
                oBackup.Initialize = true;107
 oBackup.SQLBackup(oSQLServer);
                oBackup.SQLBackup(oSQLServer);108

109
 return true;
                return true;110
 }
            }111
 catch(Exception ex)
            catch(Exception ex)112

 
             {
{113
 return false;
                return false;114
 throw ex;
                throw ex;115
 }
            }116
 finally
            finally117

 
             {
{118
 oSQLServer.DisConnect();
                oSQLServer.DisConnect();119
 }
            }120
 }
        }121

122

 /**//// <summary>
        /**//// <summary>123
 /// 数据库恢复
        /// 数据库恢复124
 /// </summary>
        /// </summary>125
 public string DbRestore()
        public string DbRestore()126

 
         {
{127
 if(exepro()!=true)//执行存储过程
            if(exepro()!=true)//执行存储过程128

 
             {
{129
 return "操作失败";
                return "操作失败";130
 }
            }131
 else
            else132

 
             {
{133
 SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();134
 SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();135
 try
                try136

 
                 {
{137
 exepro();
                    exepro();138
 oSQLServer.LoginSecure = false;
                    oSQLServer.LoginSecure = false;139
 oSQLServer.Connect(server, uid, pwd);
                    oSQLServer.Connect(server, uid, pwd);140
 oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;141
 oRestore.Database = database;
                    oRestore.Database = database;142

 /**////自行修改
                    /**////自行修改143
 oRestore.Files = @"d:\aaa\aaa.bak";
                    oRestore.Files = @"d:\aaa\aaa.bak";144
 oRestore.FileNumber = 1;
                    oRestore.FileNumber = 1;145
 oRestore.ReplaceDatabase = true;
                    oRestore.ReplaceDatabase = true;146
 oRestore.SQLRestore(oSQLServer);
                    oRestore.SQLRestore(oSQLServer);147

148
 return "ok";
                    return "ok";149
 }
                }150
 catch(Exception e)
                catch(Exception e)151

 
                 {
{152
 return "恢复数据库失败";
                    return "恢复数据库失败";153
 throw e;
                    throw e;154
 }
                }155
 finally
                finally156

 
                 {
{157
 oSQLServer.DisConnect();
                    oSQLServer.DisConnect();158
 }
                }159
 }
            }160
 }
        }161
 
        162

 /**//// <summary>
        /**//// <summary>163
 /// 杀死当前库的所有进程
        /// 杀死当前库的所有进程164
 /// </summary>
        /// </summary>165
 /// <returns></returns>
        /// <returns></returns>166
 private bool exepro()
        private bool exepro()167

 
         {
{168

169
 SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");170
 SqlCommand cmd = new SqlCommand("killspid",conn1);
            SqlCommand cmd = new SqlCommand("killspid",conn1);171
 cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandType = CommandType.StoredProcedure;172
 cmd.Parameters.Add("@dbname","aaa");
            cmd.Parameters.Add("@dbname","aaa");173
 try
            try174

 
             {
{175
 conn1.Open();
                conn1.Open();176
 cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();177
 return true;
                return true;178
 }
            }179
 catch(Exception ex)
            catch(Exception ex)180

 
             {
{181
 return false;
                return false;182
 }
            }183
 finally
            finally184

 
             {
{185
 conn1.Close();
                conn1.Close();186
 }
            }187
 }
        }188

189
 }
    }190

191
 }
}192

在相应的按钮
1 <asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button>
<asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button>
单击事件里调用即可: <asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button>
<asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button> 1
 /**//// <summary>
/**//// <summary>
2 /// 备份按钮
        /// 备份按钮
3 /// </summary>
        /// </summary>
4 /// <param name="sender"></param>
        /// <param name="sender"></param>
5 /// <param name="e"></param>
        /// <param name="e"></param>
6 private void wbtn_Backup_Click(object sender, System.EventArgs e)
        private void wbtn_Backup_Click(object sender, System.EventArgs e)
7
 
         {
{
8 DbOperate dbop = new DbOperate();
            DbOperate dbop = new DbOperate();
9 dbop.DbBackup();
            dbop.DbBackup();
10 }
        }

 /**//// <summary>
/**//// <summary>2
 /// 备份按钮
        /// 备份按钮3
 /// </summary>
        /// </summary>4
 /// <param name="sender"></param>
        /// <param name="sender"></param>5
 /// <param name="e"></param>
        /// <param name="e"></param>6
 private void wbtn_Backup_Click(object sender, System.EventArgs e)
        private void wbtn_Backup_Click(object sender, System.EventArgs e)7

 
         {
{8
 DbOperate dbop = new DbOperate();
            DbOperate dbop = new DbOperate();9
 dbop.DbBackup();
            dbop.DbBackup();10
 }
        }