您的位置:首页 > 编程语言 > ASP

如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复

2006-03-05 14:50 1246 查看
83

path += CurrTime;
84

path += ".BAK";
85

return path;
86

}
87


88



/**//// <summary>
89

/// 数据库备份
90

/// </summary>
91

/// <returns>备份是否成功</returns>
92

public bool DbBackup()
93





{
94

string path = CreatePath();
95

SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
96

SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
97

try
98





{
99

oSQLServer.LoginSecure = false;
100

oSQLServer.Connect(server,uid, pwd);
101

oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
102

oBackup.Database = database;
103

oBackup.Files = path;
104

oBackup.BackupSetName = database;
105

oBackup.BackupSetDescription = "数据库备份";
106

oBackup.Initialize = true;
107

oBackup.SQLBackup(oSQLServer);
108


109

return true;
110

}
111

catch(Exception ex)
112





{
113

return false;
114

throw ex;
115

}
116

finally
117





{
118

oSQLServer.DisConnect();
119

}
120

}
121


122



/**//// <summary>
123

/// 数据库恢复
124

/// </summary>
125

public string DbRestore()
126





{
127

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





{
129

return "操作失败";
130

}
131

else
132





{
133

SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
134

SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
135

try
136





{
137

exepro();
138

oSQLServer.LoginSecure = false;
139

oSQLServer.Connect(server, uid, pwd);
140

oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
141

oRestore.Database = database;
142



/**////自行修改
143

oRestore.Files = @"d:/aaa/aaa.bak";
144

oRestore.FileNumber = 1;
145

oRestore.ReplaceDatabase = true;
146

oRestore.SQLRestore(oSQLServer);
147


148

return "ok";
149

}
150

catch(Exception e)
151





{
152

return "恢复数据库失败";
153

throw e;
154

}
155

finally
156





{
157

oSQLServer.DisConnect();
158

}
159

}
160

}
161


162



/**//// <summary>
163

/// 杀死当前库的所有进程
164

/// </summary>
165

/// <returns></returns>
166

private bool exepro()
167





{
168


169

SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
170

SqlCommand cmd = new SqlCommand("killspid",conn1);
171

cmd.CommandType = CommandType.StoredProcedure;
172

cmd.Parameters.Add("@dbname","aaa");
173

try
174





{
175

conn1.Open();
176

cmd.ExecuteNonQuery();
177

return true;
178

}
179

catch(Exception ex)
180





{
181

return false;
182

}
183

finally
184





{
185

conn1.Close();
186

}
187

}
188


189

}
190


191

}
192


在相应的按钮

1

<asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button>
单击事件里调用即可:

1



/**//// <summary>
2

/// 备份按钮
3

/// </summary>
4

/// <param name="sender"></param>
5

/// <param name="e"></param>
6

private void wbtn_Backup_Click(object sender, System.EventArgs e)
7





{
8

DbOperate dbop = new DbOperate();
9

dbop.DbBackup();
10

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: