1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Backup and Restore DB

Discussão em 'Programação' iniciada por REDDIO, 20 de Abril de 2009. (Respostas: 2; Visualizações: 1248)

  1. REDDIO

    REDDIO Power Member

    Bom dia a todos,

    Numa unidade curricular do meu projecto estou a desenvolver uma aplicação em VB.net em que tem de ter uma funcionalidade para fazer backups e restaurar dados.
    Neste momento tenho um código mas tenho um erro.
    Gostaria que dessem uma vista de olhos para ver a causa.

    Código:
     Imports System.Data.SqlClient
    
    Public Class Form3
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    
            Dim conexaoSQLServer As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Master"
    
            Dim sqlUtils As New SQLServer
    
    
            Dim databases() As String = sqlUtils.ObtemBancoDeDadosSQLSever(conexaoSQLServer)
    
            Dim listaDB As String
    
            For Each listaDB In databases
    
                lstBDSQLServer.Items.Add(listaDB)
    
            Next
    
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim sqlUtils As New SQLServer
    
    
            Dim conexaoSQLServer As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Master"
    
            Try
    
                sqlUtils.BackupDatabase(conexaoSQLServer, lstBDSQLServe.SelectedItem, "C:\TesteSQLServerBackup.bak")
    
                MsgBox("BACKUP DO BANCO DE DADOS   " & lstBDSQLServer.SelectedItem & "  FEITO COM SUCESSO !")
    
            Catch ex As Exception
    
                MessageBox.Show(ex.Message)
    
            End Try
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    
            Dim conexaoSQLServer As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Master"
    
    
            Dim sqlUtils As New SQLServer
    
    
            Try
    
                sqlUtils.RestauraDatabase(conexaoSQLServer, lstBDSQLServer.SelectedItem, "C:\TesteSQLServerBackup.bak")
    
                MsgBox("RESTAURAÇÃO DO BANCO DE DADOS  " & lstBDSQLServer.SelectedItem & "  EFETUADA COM SUCESSO !")
    
            Catch ex As Exception
    
                MessageBox.Show(ex.Message)
    
            End Try
    
    
        End Sub
    End Class
    
    Tenho uma outra class onde estão instanciados os métodos

    Código:
    Imports System.Data.SqlClient
    Public Class SQLServer
        Function ObtemBancoDeDadosSQLSever(ByVal ConnString As String) As String()
    
            Dim cn As New SqlConnection(ConnString)
    
            Dim dbLista As New ArrayList
    
            ' retorn o nome de todos os banco de dados da tabela sysdatabases em MASTER
    
            Dim cmd As New SqlCommand("SELECT [name] FROM sysdatabases", cn)
    
            Dim reader As SqlDataReader
    
            cn.Open()
    
            Try
    
                reader = cmd.ExecuteReader()
    
            Catch ex As Exception
    
                MsgBox(ex.Message())
    
            End Try
    
            While reader.Read()
    
                ' inclui o nome no arraylist
    
                dbLista.Add(reader("name"))
    
            End While
    
            cn.Close()
    
            ' retorna o array de strings 
    
            Return dbLista.ToArray(GetType(String))
    
    
        End Function
    
        Function BackupDatabase(ByVal connString As String, ByVal nomeDB As String, ByVal backupFile As String)
    
            Dim cn As New SqlConnection(connString)
    
            Try
    
                ' comando para fazer o backup do Banco de dados
    
                Dim cmdBackup As New SqlCommand("BACKUP DATABASE [" & nomeDB & "] TO DISK = '" & backupFile & "'", cn)
    
                cn.Open()
    
                cmdBackup.ExecuteNonQuery()
    
            Finally
    
                cn.Close()
    
            End Try
    
        End Function
    
        Function RestauraDatabase(ByVal connString As String, ByVal nomeDB As String, ByVal backupFile As String)
    
            Dim cn As New SqlConnection(connString)
    
            Try
    
                'comando para restaurar o banco de dados
    
                Dim cmdBackup As New SqlCommand("RESTORE DATABASE [" & nomeDB & "] FROM DISK = '" & backupFile & "'", cn)
    
                cn.Open()
    
                cmdBackup.ExecuteNonQuery()
    
            Finally
    
                cn.Close()
    
            End Try
    
        End Function
    End Class
    Quando corro o programa e clico no botar para listar as bases de dados existentes dá o seguinte erro: "Ocorreu um erro ao estabelecer uma ligação ao servidor. Ao ligar ao SQL Server 2005, esta falha poderá ter sido causada por, segundo as predefinições do SQL Server, não serem permitidas ligações remotas. (provider: Fornecedor de Pipes Nomeados, error: 40 - Não foi possível abrir uma ligação ao SQL Server)".

    Cumps
     
    Última edição: 20 de Abril de 2009
  2. Jekkaman

    Jekkaman Power Member

    Verifica a connection string.
     
  3. REDDIO

    REDDIO Power Member

    Sim já andei a tirar e meter coisas, mas continua a não dar... A minha questão agora é a seguinte será por o sql server ter uma "windows autentication" em que não existe password??
     

Partilhar esta Página