ERRO AO EXCLUIR E RESTAURAR BANCO

ROKEIRO 16/11/2011 22:44:34
#389254
Tenho uma aplicação em vb.net e nela eu faço backup de um banco de dados e depois, se quiser restaurá-lo, clicando em um botão, o banco em uso deve ser excluído e depois restaurado atraves do arquivo .bak.
Porém, quando clico no botão, ele me retorna um erro dizendo que o banco está em uso e por isso não pode excluí-lo para depois restaurá-lo.
Segue abaixo o código do botão

Lembrando que todo SQL.STRINGCON2 é a minha string de conexão, que é :
Public stringcon2 As String = [Ô]Password=etesp;Persist Security Info=True;User ID=sa;Initial Catalog=master[Ô]

código do botão \/

[ô]define a conexão
Dim cn As New SqlConnection()
cn.ConnectionString = sql.stringcon2



[ô]define comando

Dim cmd As New SqlCommand()
Dim cmd2 As New SqlCommand()

[ô]associar comando à conexão
cmd.Connection = cn
cmd2.Connection = cn

[ô]define instrucao SQL
Dim instrucaosql As String = String.Format([Ô]Drop database LIVRARIA_BETEL[Ô])
Dim instrucaosql2 As String = String.Format([Ô]use master[Ô])

[ô]passar instrucao para o comando
cmd.CommandText = instrucaosql
cmd2.CommandText = instrucaosql2


[ô]especifica o tipo de comando
cmd.CommandType = CommandType.Text
cmd2.CommandType = CommandType.Text


Try
cn.Open()
cn.ChangeDatabase([Ô]master[Ô])
cmd2.ExecuteNonQuery()
cmd.ExecuteNonQuery()
MsgBox([Ô]Banco de dados LIVRARIA_BETEL excluído com sucesso...[Ô], MsgBoxStyle.Information)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
Finally
[ô] fecha a conexao
cn.Close()
End Try

Dim sqlUtils As New SQLServer

Dim dir As String
dir = My.Application.Info.DirectoryPath

Dim conexaoSQLServer As String = sql.stringcon2

Try
sqlUtils.RestauraDatabase(conexaoSQLServer, [Ô]LIVRARIA_BETEL[Ô], dir & [Ô]\BackupLivrariaBetel.bak[Ô])
MsgBox([Ô]RESTAURAÇÃO DO BANCO DE DADOS LIVRARIA_BETEL EFETUADA COM SUCESSO ![Ô])
Dim source As String = [Ô]Restauração do Banco de Dados realizado por: [Ô]
Dim source2 As String = [Ô]Administrador - em [Ô] & Today & [Ô] as [Ô] & TimeOfDay

[ô] Encripta a string
Dim result As String = Crypto.Encrypt(source)
Dim result2 As String = Crypto.Encrypt(source2)

Dim fluxoTexto As IO.StreamWriter
If IO.File.Exists(dir & [Ô]\LogRestauracaoBD.txt[Ô]) Then
fluxoTexto = New IO.StreamWriter(dir & [Ô]\LogRestauracaoBD.txt[Ô], True)
fluxoTexto.WriteLine(result2)
fluxoTexto.Close()
Else
Dim objStream As New System.IO.FileStream(dir & [Ô]\LogRestauracaoBD.txt[Ô], IO.FileMode.OpenOrCreate)
Dim Arq As New System.IO.StreamWriter(objStream)

Arq.WriteLine(result)
Arq.WriteLine(result2)
Arq.Close()
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try


CÓDIGO DA FUNCAO RESTAURA BD EM OUTRA CLASSE
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


O QUE POSSO FAZER PARA RESOLVER?
Alguem ajuda?
ROKEIRO 17/11/2011 18:39:53
#389319
ALGUEM ?
Tópico encerrado , respostas não são mais permitidas