C#如何写出备份和恢复sqlserver的代码

问题描述

最好是无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();}

不管代码写得怎样,把问题的解决方案发布出来,这在论坛上本身就是一种美德。

时间: 2024-09-19 14:33:24

C#如何写出备份和恢复sqlserver的代码的相关文章

如何使用ASP.NET备份和恢复SqlServer数据库

首先我们先分析ASP备份SQL数据库的代码,详细如下: 备份SqlServer数据库:string SqlStr1 = "Server=(local);database='" + this.DropDownList1.SelectedValue + "';Uid=sa;Pwd=";string SqlStr2 = "backup database " + this.DropDownList1.SelectedValue + " to d

如何写出高效 规范 可读性高的代码 (JDBC部分)?

问题描述 关于此问题,我查了很多资料.大多都是概念性的总结,没有具体的代码实现.本人的目的是通过学习高效的jdbc代码 封装一个高效的工具包.请各位多多指教.下面贴出本人写的jdbc代码,请指出不足之处.package com.win37.user.idlimp;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;im

邮箱-使用VS2010写出程序实现增删改查

问题描述 使用VS2010写出程序实现增删改查 代码已经求人写好了,但是不会建项目 各位大神帮我调试好了发到我邮箱吧~861236126@qq.com代码在下面 建立数据库的代码 CREATE TABLE [dbo].Table NOT NULL, [姓名] NVARCHAR (20) NOT NULL, [性别] BIT NOT NULL, [出生日期] DATETIME NOT NULL, [工作年限] INT NOT NULL, [电话号码] NVARCHAR (20) NOT NULL,

ASP.NET 恢复备份Sqlserver实现代码_实用技巧

最近做的一个项目因为服务器是在特殊机房上的,因为安全方面的考虑,不能给我们开发者提供FTP服务,所以每次更新版本都得自己跑一趟,而他的机房有很远,所以我一直想能不能开发一个维护版本的系统呢,对数据库和代码进行在线更新,就不用自己跑了,于是就有了下面的尝试,在线恢复和备份SQL Server: 前台代码: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SqlDb

我的MYSQL学习心得(十四) 备份和恢复

原文:我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程

SQL SERVER2000数据库备份和恢复存储过程(加强版本)

server|备份|存储过程|恢复|数据|数据库 SQL SERVER2000数据库备份和恢复存储过程(加强版本) 我自己写的2个过程和一个函数,用于SQL SERVER2000数据库备份和恢复拿出来和大家交流一下,过程和函数的详细说明在代码中谢谢 /*备份数据库的过程*/if exists( select * from sysobjects  where name='pr_backup_db' and xtype='p'          )begin drop proc pr_backup_

Oracle数据库的备份及恢复策略研究

oracle|备份|策略|恢复|数据|数据库     摘 要 恢复丢失的数据库文件在很大程度上取决于所采用的备份策略.本文从恢复的灵活性出发,对Oracle8数据库的备份及恢复策略进行了探讨,并给出了Windows 2000环境下使备份过程自动化的脚本文件的项目开发实例. 关键词 Oracle 数据库 备份 恢复 引言 随着信息系统在各种商务活动中重要性的不断增强,维护系统数据的可用性已成为当前一个十分重要的课题.为了有效地保持健康的信息系统,必须采取一定的措施防止在由介质.操作系统.软件和其它

如何在磁带上备份和恢复AIX系统

备份和恢复是系统管理员经常要做的事情, 主要包括rootvg备份和用户数据备份. 1. 操作系统和系统程序的备份: 将一盘新磁带或无用磁带插入磁带机 #tctl -f /dev/rmt0 rewind #smit mksysb 在"备份设备或文件"中添入"/dev/rmt0"后回车. 系统会运行很长时间, 等到屏幕显示OK后拿出磁带. 这时候, 系统备份完成. 注意: mksysb仅备份rootvg中已安装的文件系统. 2. 用户数据备份 常用磁带机选项 /dev/

从炉石传说数据库故障谈谈MongoDB的数据库备份和恢复手段

看到这个消息,我的第一反应是重新翻出尘封已久的ipad,装上炉石准备上线领补偿.等等,作为一个数据库行业从业人员,是不是还应该干点什么?恩,很有必要再重新审视一下我们的数据库有没有做好容灾,否则,今天你看别人热闹,明天可能就别人看你热闹了.借此机会我想给大家普及一下MongoDB数据库的备份和恢复手段(当然炉石传说应该不一定是使用MongoDB作为数据库),以帮助大家做好容灾,过个好年.同时,我也为我们阿里云MongoDB服务做下广告,我们的MongoDB服务拥有完善的自动备份/恢复功能,灵活的