GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Backup e restauração de banco de dados sql server com form c#


#1

Boa tarde

alguém ai conhece uma maneira de fazer isso? Um backup e uma restauração usando o c#?

Pq eu ja tentei de tudo, ja usei vareas maneiras: Criei o form, inseri os botoes, inseri os codigos, mas o infeliz não salva o backup. Ele ate abre o local pra salvar na minha maquina.
Então usei outra forma, e da no mesmo…o botão ate abre o local pra salvamento…mas nao salva.

então eu comecei a suspeitar que o banco de dados devia estar em alguma condição para que o sistema funcione…só não sei qual é

alguém ai tem alguma maneira de fazer um backup e a restauração usando um formulário C#


#2

Vai por parte. Posta o código relacionando ao problema que está tendo no momento.


#3

Se no momento está com problema na parte de gerar backup, segue um exemplo simples:

           var caminho = @"C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\arquivo.bak";

            using (SqlCommand command = new SqlCommand())
            {
                command.Connection = suaConnection;
                command.CommandText = string.Format(@"BACKUP DATABASE seu_banco TO DISK = N'{0}' WITH INIT, NOREWIND, NOUNLOAD, SKIP", caminho);
                command.ExecuteNonQuery();
            }

#4

Opa Javaflex…

Olha o código…

DateTime d = DateTime.Now;
string dd = d.Day + “.” + d.Month;
string servname = “RICARDODAYANA”;
string dbname = “CadastroAluno”;

        string aaa = @"Data Source=" + servname + ";Integrated Security=True;Initial Catalog=" + dbname + "";
        SqlConnection conn = new SqlConnection(aaa);
        

        conn.Open();
        string str = "USE " + dbname + ";";
        string str1 = " BACKUP DATABASE " + dbname + "TO DISK = 'D:\\dataname\\" + dbname + "_" + dd + ".Bak' WITH FORMAT, MEDIANAME = 'Z_SQLServerBackups', NAME = 'Full Backup of" + dbname + "';";
        SqlCommand cmd1 = new SqlCommand(str, conn);
        SqlCommand cmd2 = new SqlCommand(str1, conn);
        cmd1.ExecuteNonQuery();         

        MessageBox.Show("Backup feito com Sucesso. Você pode encontrar este arquivo (DB name.Bak) no seu disco D: \\ .... nunca edite este nome de arquivo.");
        conn.Close();



    }

esse código e pra gerar backup


#5

Seu script de backup está setado pro cmd2, e voce está chamando o ExecuteNonQuery para cmd1 somente. E se nao me falha a memória, nao precisa executar esse USE. Na dúvida testa o exemplo que te passei.


#6

ok…vou fazer isso…

mas o que devo colocar no “sua conexão”?


#7

A connection que tiver usando. Pelo código que postou depois seria conn.


#8

ola JavaFlex…

eu inserir inicialmente o codigo sem uma parte dele (esqueci de colocar inteiro) ele realmente faltava o cmd2. Agora ja esta no lugar. vou mostrar a imagem do codigo completo aqui!
esta é a imagem do codigo compelto com o cmd2

Agora vou te mostrar o form…


o botao “Realizar Backup” é o que esta vinculado ao codigo acima

Agora vou te mostrar o que ocorre quando eu clico no botão…da esse erro:

Não estou conseguindo ve esse erro que aparece.


#9

Debuga e posta o conteudo do commandtext (depois de setado). Posta em texto, copia e cola, imagem dificulta.


#10

E pq não seguiu o exemplo que passei?


#11

pq eu queria q vc visse o codigo completo…e me dissesse onde esta o erro.


#12

Entao posta o que falei acima.


#13

ok


#14

Ao debugar o commandtext voce mesmo vai ver que está juntando o nome do banco com a palavra TO. Dê um espaço antes de TO DISK.

dbname + " TO DISK


#15

funfou o seu codigo…ficou ate melhor que o que eu tinha postado…Valeu…Mais uma que aprendo