一个ASP.NET + C# + SQL2000 SERVER的管理系统,如何进行数据库备份与还原?

HNU 2005-09-22 05:35:34


连接字符串:<add key="ConnectionString" value="server=127.0.0.1;Initial Catalog=IMS;User ID=a;Password=abc" />
...全文
383 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
daishengs 2005-10-13
  • 打赏
  • 举报
回复
backup database
restore database
jxdyzwh 2005-10-13
  • 打赏
  • 举报
回复
数据量大就不好备份和还原了,像我的有200万数据,
Andy__Huang 2005-09-26
  • 打赏
  • 举报
回复
寫個存儲過程備份不就好了麼,然後規定時間讓job運行,還原的也可以這樣做

pclogic 2005-09-26
  • 打赏
  • 举报
回复
mark
dtfox 2005-09-26
  • 打赏
  • 举报
回复
mark
brando_beat 2005-09-26
  • 打赏
  • 举报
回复
<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.SqlClient" %>
<HTML>
<HEAD>
<title>获取服务器端数据库列表示例</title>
<script language="C#" runat="server">

// 注意本节的数据库连接字符串
string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer1"];

void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
// 创建连接及执行数据库操作
string db_query = "sp_helpdb";

SqlCommand myCommand = new SqlCommand(db_query, new SqlConnection(ConnStr));
myCommand.Connection.Open();
SqlDataReader dr = myCommand.ExecuteReader();

// 将数据库列表绑定到下拉列表控件(DropDownList)
dbDropDownList.DataSource = dr;
dbDropDownList.DataTextField = "name";
dbDropDownList.DataBind();

//关闭DataReader对象和数据库连接
dr.Close();
myCommand.Connection.Close();
}
}

void dbDropDownList_SelectedIndexChanged(object sender, System.EventArgs e)
{
pathTextBox.Text = @"C:\BACKUP\" + dbDropDownList.SelectedValue + ".bak";
}

void backupButton_Click(object sender, System.EventArgs e)
{
string path = pathTextBox.Text;
string dbname = dbDropDownList.SelectedValue;

string backupSql = "use master;";
backupSql += "backup database @dbname to disk = @path;";

SqlCommand myCommand = new SqlCommand(backupSql, new SqlConnection(ConnStr));

myCommand.Parameters.Add("@dbname", SqlDbType.Char);
myCommand.Parameters["@dbname"].Value = dbname;
myCommand.Parameters.Add("@path", SqlDbType.Char);
myCommand.Parameters["@path"].Value = path;

try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
infoLabel.Text = "备份成功";
}
catch(Exception ex)
{
infoLabel.Text = "备份失败<br/>" + ex.ToString();
}
finally
{
myCommand.Connection.Close();
}
}

void restoreButton_Click(object sender, System.EventArgs e)
{
string path = pathTextBox.Text;
string dbname = dbDropDownList.SelectedValue;

string restoreSql = "use master;";
restoreSql += "restore database @dbname from disk = @path;";

SqlCommand myCommand = new SqlCommand(restoreSql, new SqlConnection(ConnStr));

myCommand.Parameters.Add("@dbname", SqlDbType.Char);
myCommand.Parameters["@dbname"].Value = dbname;
myCommand.Parameters.Add("@path", SqlDbType.Char);
myCommand.Parameters["@path"].Value = path;

try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
infoLabel.Text = "恢复成功";
}
catch(Exception ex)
{
infoLabel.Text = "恢复失败<br/>" + ex.ToString();
}
finally
{
myCommand.Connection.Close();
}
}

</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<h3>获取服务器端数据库列表示例</h3>
数据库列表:
<asp:dropdownlist id="dbDropDownList" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="dbDropDownList_SelectedIndexChanged"></asp:dropdownlist>
<br/><br/>
请输入备份目录及备份文件名:
<asp:textbox id="pathTextBox" runat="server" Width="224px">
C:\BACKUP\Northwind.bak</asp:textbox>(目录必须存在)
<br/><br/>
<asp:button id="backupButton" runat="server" Font-Size="9pt" Text="备份数据库"
OnClick="backupButton_Click"></asp:button>
<asp:button id="restoreButton" runat="server" Font-Size="9pt" Text="恢复数据库"
OnClick="restoreButton_Click"></asp:button>
<br/><br/>
<asp:Label id="infoLabel" runat="server"></asp:Label>
</form>
</body>
</HTML>

哈哈,这个问题我答了N趟了
athossmth 2005-09-26
  • 打赏
  • 举报
回复
直接copy两个数据库文件算了
xiaowangtian1117 2005-09-26
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4214/4214305.xml?temp=.9535791
xiaowangtian1117 2005-09-26
  • 打赏
  • 举报
回复
备份我用存储过程:
ALTER PROCEDURE dbo.[backup]
@BackupPath nvarchar(255),
@DataBaseName nvarchar(255)
AS
BACKUP DATABASE @DataBaseName TO DISK = @BackupPath
RETURN
恢复:
string strSql="Alter Database ["+System_Biz.DataBaseName+"] Set Offline with Rollback immediate; ";
strSql=strSql+"RESTORE DATABASE ["+System_Biz.DataBaseName+"] FROM DISK = '"+System_Biz.RegainPath+"';";
strSql=strSql+"Alter Database ["+System_Biz.DataBaseName+"] Set OnLine With rollback Immediate";
string strconnection="server=localhost;User ID=sa;password="+System_Biz.DataBasePassword+";database=master;";
注意恢复时必须用sa账号
yatianboy 2005-09-26
  • 打赏
  • 举报
回复
顶~~~
HNU 2005-09-23
  • 打赏
  • 举报
回复
能否给一个写job的代码?
mapserver 2005-09-23
  • 打赏
  • 举报
回复
当然最好的办法就是写job了,每天自动备份。还可以用dts包。
mapserver 2005-09-23
  • 打赏
  • 举报
回复
写两个存储过程,在存储过程里写备份和还原的Sql语句,要备份的时候就直接调用存储过程就好。
HNU 2005-09-23
  • 打赏
  • 举报
回复
UP
adandelion 2005-09-22
  • 打赏
  • 举报
回复
数据库备份,我也想知道.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧