VB.NET DMO SQL SERVER备份恢复

原创 2004年10月15日 00:05:00

Public Class Form1

 

    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        '在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    '窗体重写处置以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意:以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
    Friend WithEvents Button1 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.SuspendLayout()
        '
        'ProgressBar1
        '
        Me.ProgressBar1.Anchor = ((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right)
        Me.ProgressBar1.Location = New System.Drawing.Point(8, 8)
        Me.ProgressBar1.Name = "ProgressBar1"
        Me.ProgressBar1.Size = New System.Drawing.Size(384, 23)
        Me.ProgressBar1.TabIndex = 0
        '
        'Button1
        '
        Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat
        Me.Button1.Location = New System.Drawing.Point(160, 40)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(75, 24)
        Me.Button1.TabIndex = 1
        Me.Button1.Text = "备份"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.BackColor = System.Drawing.Color.CornflowerBlue
        Me.ClientSize = New System.Drawing.Size(400, 74)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1, Me.ProgressBar1})
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
        Me.MaximizeBox = False
        Me.MinimizeBox = False
        Me.Name = "Form1"
        Me.ShowInTaskbar = False
        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
        Me.ResumeLayout(False)

    End Sub

#End Region

    '此处由于嫌麻烦未按属性来处理……应改进
    Public sa As String                 
    Public passerd As String
    Public file As String
    Public database As String
    Public sqlserver As String

    Public flag As Boolean = True


    Private WithEvents PBackup As New SQLDMO.Backup()
    Private WithEvents oRestore As New SQLDMO.Restore()

 

    ' Property SQLServerName() As String
    '    Get
    '       Return sqlserver
    '   End Get
    '   Set(ByVal Value As String)
    '      sqlserver = Value
    '   End Set
    '  End Property


    '备份
    Public Function BACKUP(ByVal DATABASENAME As String, ByVal SQLServe As String, ByVal ROLE As String, ByVal PASSWORD As String, ByVal backfilename As String)


        Me.ProgressBar1.Value = 0
        Me.BackColor = System.Drawing.Color.RoyalBlue
        Me.Button1.Text = "备份"
        Me.Show()
        On Error GoTo ErrHandler

        Dim SQLSER As New SQLDMO.SQLServer

        SQLSER.Connect(SQLServe, ROLE, PASSWORD)
        PBackup.Database = DATABASENAME

        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

        PBackup.Files = backfilename
        PBackup.SQLBackup(SQLSER)

        SQLSER.DisConnect()
        SQLSER = Nothing
        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
        Exit Function

ErrHandler:

        MsgBox("备份失败,请检查源数据库是否存在、角色权限是否足够或SQL SERVER服务是否被打开" & Chr(13) & "信息:" & Err.Description)
        Resume Next
    End Function

    '恢复
    Public Function RSTORE(ByVal DATABASENAME As String, ByVal SQLServe As String, ByVal ROLE As String, ByVal PASSWORD As String, ByVal restfilename As String)

 

        Me.ProgressBar1.Value = 0

        Me.BackColor = System.Drawing.Color.OliveDrab
        Me.Button1.Text = "恢复"
        Me.Show()
        On Error GoTo ErrHandler


        Dim SQLSER As New SQLDMO.SQLServer

 

        SQLSER.Connect(SQLServe, ROLE, PASSWORD)

 

        oRestore.Database = DATABASENAME
        oRestore.Files = restfilename


        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
        oRestore.SQLRestore(SQLSER)
        System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default

 

        SQLSER.DisConnect()
        SQLSER = Nothing

 

        Exit Function

ErrHandler:
        MsgBox("恢复失败,请检查恢复数据库是否存在、角色权限是否足够或SQL SERVER服务是否被打开" & Chr(13) & "信息:" & Err.Description)
        Resume Next
    End Function

 

 

 

 


    Private Sub PBackup_Complete(ByVal Message As String) Handles PBackup.Complete

        Me.ProgressBar1.Value = 100
        PBackup = Nothing
        Me.oRestore = Nothing
        Me.Close()

    End Sub
    Private Sub PBackup_PercentComplete(ByVal Message As String, ByVal Percent As Integer) Handles PBackup.PercentComplete
        Me.BackColor = System.Drawing.Color.RoyalBlue

        Me.ProgressBar1.Value = Percent
        If Percent = 100 Then

            Me.ProgressBar1.Value = 100
            PBackup = Nothing
            Me.oRestore = Nothing
            Me.Close()

        End If
    End Sub
    Private Sub oRestore_Complete(ByVal Message As String) Handles oRestore.Complete

        Me.ProgressBar1.Value = 100
        PBackup = Nothing
        Me.oRestore = Nothing
        Me.Close()
    End Sub
    Private Sub oRestore_PercentComplete(ByVal Message As String, ByVal Percent As Integer) Handles oRestore.PercentComplete
        Me.BackColor = System.Drawing.Color.OliveDrab

        Me.ProgressBar1.Value = Percent
        If Percent = 100 Then

            Me.ProgressBar1.Value = 100
            PBackup = Nothing
            Me.oRestore = Nothing
            Me.Close()
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If flag = True Then

            Me.BACKUP(Me.database, Me.sqlserver, Me.sa, Me.passerd, Me.file)

        Else
            Me.RSTORE(Me.database, Me.sqlserver, Me.sa, Me.passerd, Me.file)

        End If

    End Sub

 


End Class

错误21002:[SQL-DMO]用户"xxx"已经存在

打开企业管理器,选择问题数据库,点击“用户”,删掉其中的“xxx”。重新在“安全性”中添加用户“***”...
  • mqyng
  • mqyng
  • 2008年10月28日 20:05
  • 120

Microsoft SQL-DMO 错误解决过程

中了木马病毒,什么XXX后门, 症状是 C:/目录下有 很多批处理 然后利用FTP 下载 后门文件最后SQLSERVER 不能用了SA 用户不能更改密码 报错 Microsoft SQL-DMO(OD...
  • xuejiayue1105
  • xuejiayue1105
  • 2011年04月25日 10:00
  • 4078

SQL Server的备份和恢复

作者:朱金灿来源:http://blog.csdn.net/clever101          在上篇博客中谈了Oracle10g的备份和恢复,今天谈了SQLServer的备份和恢复。和Oracle...
  • clever101
  • clever101
  • 2013年06月13日 22:40
  • 2636

VB.NET连接sql server数据库

之前没有学过vb语言,这两天接手了一个vb的项目,最开始做的当然就是连接数据库了,可是我在网上找各种资料就是找不到一个能解决我问题的连办法,连接数据库的基本原理都知道。用给的几个接口,写几条语句就完了...
  • wangxupeng2008
  • wangxupeng2008
  • 2015年03月23日 11:25
  • 407

vb.net与SQL Server

       vb.net应用程序对数据库的访问是通过ado.net来完成的。ADO.NET通过ODBC通道使用SQL访问数据库。ADO.NET对数据库的访问可以简单的想象成三层处理模型。这三层及每层...
  • dongzi87
  • dongzi87
  • 2009年12月13日 10:45
  • 839

SQL Server 2005&2008备份恢复总结

SQL Server 2005&2008备份恢复总结 一、数据库存储概述 1、数据文件类型 ·         Primary data files:每个数据库都有一个单独的主要数...
  • haiross
  • haiross
  • 2014年06月30日 11:26
  • 1556

VB.NET将EXCEL中的数据导入到SQL SERVER

利用VB.NET程序,将EXCEL中的数据导入到SQL SERVER中。
  • mamaosheng
  • mamaosheng
  • 2010年12月09日 21:24
  • 3435

SQL DMO

 SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装 Microsoft SQL Server 2000 数据库中的对象。SQL-DMO 允...
  • huang7914
  • huang7914
  • 2008年04月16日 14:24
  • 546

VB.net数据库编程(03):一个SQLserver连接查询的简单例子

这个例子,由于在ADO.net入门已经专门学了,再次进行复习 一下。 主要掌握连接字串的情况。 过程就是: 1、引用System.Data.SqlClient。而Ac...
  • u014366427
  • u014366427
  • 2014年03月26日 11:10
  • 970

VB向SQLSERVER插入记录

Private Sub Command2_Click()Dim conn As New ADODB.ConnectionDim rs As New ADODB.Recordsetconn.Connec...
  • changleqy
  • changleqy
  • 2007年07月31日 15:55
  • 2460
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB.NET DMO SQL SERVER备份恢复
举报原因:
原因补充:

(最多只允许输入30个字)