您的位置:程序门 -> .net技术 -> vb.net



请问在vb.net中怎样备份数据库??


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请问在vb.net中怎样备份数据库??[已结贴,结贴人:qiluncjx]
发表于:2007-05-15 12:59:38 楼主
我正在做一个酒店管理系统,要加入一个对整个数据库的备份和还原功能。。。请问有谁知道怎样实现???谢谢指教啊!!!!
发表于:2007-05-15 13:19:551楼 得分:0
使用的数据库是sqlserver?
发表于:2007-05-15 13:42:482楼 得分:10
我想应该可以用sql语句实现以下供参考http://blog.csdn.net/rainbowsoftware/archive/2007/04/13/1563371.aspx
发表于:2007-05-15 13:51:363楼 得分:0
楼上的转帖写得挺详细啊。呵呵,不错!
发表于:2007-05-15 15:14:024楼 得分:0
对,是sql   server  
谢谢楼上各位的帮助,,我正在学习中。。。
如果哪位还有什么好方法请指教啊!!!
发表于:2007-05-15 15:20:345楼 得分:10
backup     database     [数据库名]     to     disk= '数据库名及路径 '
发表于:2007-05-16 22:00:546楼 得分:0
再请教一下,怎么还原数据库啊。。。。直接用代码它会提示数据库正在使用中,然后中止执行啊!!!
发表于:2007-05-17 16:09:307楼 得分:10
还原的时候先要中止所有的数据库连接后才能还原.可以用存储过程来完成这个工作.
给你贴个示例:
create   procedure   testkill   as
declare   @sql   varchar(8000)
  set   @sql= ' '
select   @sql=@sql   +   '   kill   '+cast(spid   as   varchar(8))
  from   master..sysprocesses
where   dbid=db_id( 'mold_ms ')
go
以上为我保存的存储过程
然后在asp页中执行
set   rs=server.createobject( "adodb.recordset ")
sqlstr= "EXECute   testkill   'mold_ms ' "
sql= "restore   database   mold_ms   from   disk= ' "&   dbpath   & "\ "   &   dbname   &   " ' "  
rs.open   sqlstr,conn,1
conn.EXECute(sqlstr)
set   rs=conn.EXECute(sql)
上面是在asp网页中调用的代码,你在你的程序里调用这个存储过程就行.
发表于:2007-05-17 19:30:178楼 得分:0
那到底应该怎么调用啊。。我没用过存储过程。。。能不能帮我写出来。。。多谢了。。。
发表于:2007-05-19 16:12:469楼 得分:10
public   readonly   property   backup()   as   boolean
                get
                        me.tmp_command.commandtext   =   "backup   database   "   &   me._name   &   "   to   disk= ' "   &   me._path   &   " '   with   name= ' "   &   me._name   &   "   backup   all ',description= 'full   backup   of   "   &   me._name   &   " ' "
                        try
                                me.tmp_connection.open()
                                me.tmp_command.EXECutenonquery()
                                return   true
                        catch
                                return   false
                        finally
                                if   me.tmp_connection.state   =   connectionstate.open   then
                                        me.tmp_connection.close()
                                end   if
                        end   try
                end   get
        end   property

        public   function   restock(byref   tmppb   as   toolstripprogressbar)   as   boolean
                dim   tmp_i   as   integer
                dim   tmp_ii   as   integer
                dim   tmp_killer   as   string
                me.tmp_exestr   =   "select   spid   from   sysprocesses   where   dbid   =   (select   dbid   from   sysdatabases   where   name   like   ' "   &   me._control   &   " ') "
                try
                        me.doconnect()
                        me.tmp_flag   =   true
                        me._dataset.clear()
                        me.tmp_connection.open()
                        tmppb.value   =   5
                        me.tmp_adapter   =   new   sqlclient.sqldataadapter(me.tmp_exestr,   me.tmp_connection)
                        me.tmp_adapter.fill(me._dataset,   "systemdb ")
                        tmppb.value   =   10
                        tmp_ii   =   me._dataset.tables( "systemdb ").rows.count
                        for   tmp_i   =   0   to   tmp_ii   -   1
                                tmppb.value   +=   tmp_ii   *   fix(85   /   tmp_ii)
                                tmp_killer   =   "kill   "   +   ctype(me._dataset.tables( "systemdb ").rows(tmp_i).item(0),   string)
                                me.tmp_command.commandtext   =   tmp_killer
                                me.tmp_command.EXECutenonquery()
                        next
                        me.tmp_exestr   =   "restore   database   "   &   me._control   &   "   from   disk= ' "   &   me._path   &   " '   with   recovery "
                        me.tmp_command.commandtext   =   me.tmp_exestr
                        me.tmp_command.EXECutenonquery()
                        tmppb.value   =   90

                        me.tmp_exestr   =   "alter   database   "   &   me._control   &   "   set   online "
                        me.tmp_command.commandtext   =   me.tmp_exestr
                        me.tmp_command.EXECutenonquery()
                        tmppb.value   =   100
                catch  
                        me.tmp_flag   =   false
                finally
                        me._name   =   me._control
                        me.doconnect()
                end   try
                return   me.tmp_flag
        end   function


快速检索

最新资讯
热门点击