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

14 respostas
L

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#

14 Respostas

J

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

J

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();
            }
L

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

J

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.

L

ok…vou fazer isso…

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

J

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

L

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.

J

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

J

E pq não seguiu o exemplo que passei?

L

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

J

Entao posta o que falei acima.

L

ok

J

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

L

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

Criado 8 de janeiro de 2019
Ultima resposta 16 de jan. de 2019
Respostas 14
Participantes 2