问题描述
最好是无bug的,我在网上找了很多都不知道写的什么意思,在此,恳请大侠们留个善心,帮小弟一把。
解决方案
解决方案二:
直接通过C#调用操作系统命令进行SQLSERVER的备份。
解决方案三:
一样通过sql,你发来查询跟踪器,然后在管理器中操作备份和回复,跟踪器中就会看到执行的语句
解决方案四:
解决方案五:
该回复于2014-08-20 18:30:18被版主删除
解决方案六:
我花大好几千一个月雇人开发都不好意思说“请你给我写无bug的代码”,lz你好大的口气。
解决方案七:
不好意思,我做出来了。而且代码简单,不会是网上的那么复杂。当然没用存储过程去做
解决方案八:
引用6楼BestCoolmanmjf的回复:
不好意思,我做出来了。而且代码简单,不会是网上的那么复杂。当然没用存储过程去做
分享一下你的成果!
解决方案九:
//备份事件//txtPath.Text备份的文件目录File.Delete(txtPath.Text);判断该文件地址下是否有相同的备份文件,有就删除//需要备份的数据库到那个文件目录下的什么名(自定义)sql="backupdatabaseback_uptodisk='"+txtPath.Text+"'";con=newSqlConnection("server=.;database=beifen;uid=sa;pwd=1");con.Open();try{cmd=newSqlCommand(sql,con);cmd.ExecuteNonQuery();MessageBox.Show("Change");}catch(Exceptionex){MessageBox.Show(ex+"");}con.Close();//恢复事件操作注*必须没有任何操作下才能操作成功con=newSqlConnection("server=.;database=master;uid=sa;pwd=1");con.Open();try{//使用sql="usemaster";SqlCommandcom=newSqlCommand(sql,con);com.ExecuteNonQuery();//第二步:先删除原来的数据库sql="dropdatabaseback_up"cmd=newSqlCommand(sql,con);cmd.ExecuteNonQuery();}catch(exceptionex){messageBox.show(ex+"");//一般报错会提示用户正在连接使用数据库}//接下来再倒入备份好的数据库con=newSqlConnection("server=.;database=master;uid=sa;pwd=1");con.Open();try{//注*back_up为你导入的数据哭名称,与你备份的数据名不相同(是一个自定义数据库名,一般都是原来数据库名称,防止出错)sql="usemasterrestoredatabaseback_upfromdisk='"+txtPath.Text+"'";cmd=newSqlCommand(sql,con);cmd.ExecuteNonQuery();MessageBox.Show("恢复数据库成功");}catch(Exceptionex){MessageBox.Show(ex+"");}finally{con.Close();}
解决方案十:
在下菜鸟,实在不才,如有错的地方,还请大侠们指正
解决方案十一:
你这个要控制sql语句超时的时间放长一些,否则运行的时候会直接catch掉
解决方案十二:
这跟C#有什么关系..备份还原不就是几句SQL语句吗.....
解决方案十三:
解决方案十四:
引用11楼diaodiaop的回复:
这跟C#有什么关系..备份还原不就是几句SQL语句吗.....
你做项目时,万一系统出了问题,你的数据怎么找回,客户懂吗?
解决方案十五:
备份和恢复SQLServer数据库示例//备份数据//把检索出要备份的数据库名称绑定到DropDownList控件操作publicvoidbinddropdownList(){//定义连接字符串stringcmdtxt1="Server=(local);DataBase=master;Uid=sa;Pwd=";//定义数据库stringcmdtxt2="Execsp_helpdb";//创建连接SqlConnectionCon=newSqlConnection(cmdtxt1);Con.Open();//打开数据库连接SqlCommandmycommand=newSqlCommand(cmdtxt2,Con);//创建命令对象SqlDataReaderdr=mycommand.ExecuteReader();//创建数据阅读器读取数据库中的数据this.DDLDataBase.DataSource=dr;//设置下拉列表控件的数据源绑定的主键字段this.DDLDataBase.DataTextField="name";this.DDLDataBase.DataBind();//从数据库中绑定数据到下拉列表中dr.Close();//关闭适配器Con.Close();//关闭数据库连接}//设置备份按钮事件备份数据protectedvoidImgBtnOK_Click(objectsender,ImageClickEventArgse){stringcmdtxt1="Server=(local);database='"+this.DDLDataBase.SelectedValue+"';Uid=sa;Pwd=";stringcmdtxt2="backupdatabase"+this.DDLDataBase.SelectedValue+"todisk='"+this.TextBox1.Text.Trim()+".bak'";SqlConnectionCon=newSqlConnection(cmdtxt1);Con.Open();//打开数据库的链接try{SqlCommandCom=newSqlCommand(cmdtxt2,Con);Com.ExecuteNonQuery();Response.Write("<scriptlanguage=javascript>alert('备份数据成功!');location='javascript:history.go(-1)'</script>");}catch(Exceptionms){Response.Write(ms.Message);Response.Write("<scriptlanguage=javascript>alert('备份数据失败!');location='javascript:history.go(-1)'</script>");}finally{Con.Close();}}//还原数据//绑定下拉列表检索要还原的数据库名称protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stringcmdtxt1="Server=(local);DataBase=master;Uid=sa;Pwd=";//定义执行数据库连接字符串stringcmdtxt2="Execsp_helpdb";//查询数据库SqlConnectionCon=newSqlConnection(cmdtxt1);//定义连接对象Con.Open();//打开连接SqlCommandmycommand=newSqlCommand(cmdtxt2,Con);//创建命令对象SqlDataReaderdr=mycommand.ExecuteReader();//创建数据阅读器this.dropSqlName.DataSource=dr;//绑定下拉列表框的数据源及主键字段值this.dropSqlName.DataTextField="name";this.dropSqlName.DataBind();//从数据库中绑定数据dr.Close();//关闭阅读器Con.Close();//关闭连接}//CodeGo.net/}//设置还原按钮事件还原指定的数据库protectedvoidImgBtnk_Click(objectsender,ImageClickEventArgse){stringpath=this.fileShow.PostedFile.FileName;//获得备份路径及数据库名称stringdbname=this.dropSqlName.SelectedValue;stringcmdtxt1="Server=(local);database='"+this.dropSqlName.SelectedValue+"';Uid=sa;Pwd=";stringcmdtxt2="usemasterrestoredatabase"+dbname+"fromdisk='"+path+"'";SqlConnectionCon=newSqlConnection(cmdtxt1);Con.Open();//打开数据库连接try{SqlCommandCom=newSqlCommand(cmdtxt2,Con);Com.ExecuteNonQuery();Response.Write("<scriptlanguage=javascript>alert('还原数据成功!');location='javascript:history.go(-1)'</script>");}catch(Exceptionms){Response.Write(ms.Message);Response.Write("<scriptlanguage=javascript>alert('还原数据失败!');location='javascript:history.go(-1)'</script>");}finally{Con.Close();//关闭数据库连接}}
解决方案:
引用8楼BestCoolmanmjf的回复:
//备份事件//txtPath.Text备份的文件目录File.Delete(txtPath.Text);判断该文件地址下是否有相同的备份文件,有就删除//需要备份的数据库到那个文件目录下的什么名(自定义)sql="backupdatabaseback_uptodisk='"+txtPath.Text+"'";con=newSqlConnection("server=.;database=beifen;uid=sa;pwd=1");con.Open();try{cmd=newSqlCommand(sql,con);cmd.ExecuteNonQuery();MessageBox.Show("Change");}catch(Exceptionex){MessageBox.Show(ex+"");}con.Close();//恢复事件操作注*必须没有任何操作下才能操作成功con=newSqlConnection("server=.;database=master;uid=sa;pwd=1");con.Open();try{//使用sql="usemaster";SqlCommandcom=newSqlCommand(sql,con);com.ExecuteNonQuery();//第二步:先删除原来的数据库sql="dropdatabaseback_up"cmd=newSqlCommand(sql,con);cmd.ExecuteNonQuery();}catch(exceptionex){messageBox.show(ex+"");//一般报错会提示用户正在连接使用数据库}//接下来再倒入备份好的数据库con=newSqlConnection("server=.;database=master;uid=sa;pwd=1");con.Open();try{//注*back_up为你导入的数据哭名称,与你备份的数据名不相同(是一个自定义数据库名,一般都是原来数据库名称,防止出错)sql="usemasterrestoredatabaseback_upfromdisk='"+txtPath.Text+"'";cmd=newSqlCommand(sql,con);cmd.ExecuteNonQuery();MessageBox.Show("恢复数据库成功");}catch(Exceptionex){MessageBox.Show(ex+"");}finally{con.Close();}
不管代码写得怎样,把问题的解决方案发布出来,这在论坛上本身就是一种美德。