Dev (Back & Front)ARTIGO

SQLEngine utilizando upgrade

Estava com problema no banco de dados para celular. Fiz o banco de dados com o
SQL Server 2005 e, ao tentar conectar no Visual Studio.NET 2008, recebia um aviso que não era possível abrir devido à versão, pois a mesma deveria ser atualizada. O objetivo desse pequeno artigo é
converter o banco de dados na versão antiga para a versão nova, ou seja, que
abre no VSTS 2008.

Referência:

  • Banco de dados
    SQL Server 2005
  • Visual Studio .NET 2008
  • SQL Server CE for Windows Mobile
  • Linguagem C#.NET

 Fiz
um banco de dados SQL Server CE com a ferramenta SQL Server 2005. (Referência:
1.1)

Referência: 1.1

O grande problema de criar o banco
de dados pela ferramenta SQL Server 2005 é que o problema aparece ao tentar abrir o mesmo na
ferramenta de desenvolvimento. Caso não precise abrir no
VSTS 2008, não acontece problema nenhum.

Tentei conectar no banco via linha
de código e apareceu o mesmo erro, falando que não poderia conectar devido à
versão antiga do banco. Resumindo, tinha que usar um tal de SQLCeEngine para converter para versão
atual. (Referência 1.2)

Referência: 1.2

Estudando um pouco o SQLCeEngine, percebi que é muito simples
fazer essa conversão no momento de compilação ou em outros momentos. Decidi não
arriscar e fazer antes do que no momento de compilação, todo mundo já ouviu
falar na Lei de Murphy [http://pt.wikipedia.org/wiki/Lei_de_Murphy]
na área de informática.

Código

O código é particularmente simples
de fazer e utilizar. Criei um aplicativo do tipo Windows Forms, lembrando que
não precisa ser especificamente esse tipo de aplicativo, ou seja, é possível utilizar
também um via Console Application.

Depois escrevi o seguinte código
(Code 1.1):

using System.Data.SqlServerCe;<br /><br />private void Form1_Load(object sender, EventArgs e)<br /><br />{<br /><br />     try{<br /><br />         SqlCeEngine conv = new SqlCeEngine(@"DataSource='C:\SeuBancoMobil.sdf'; Password='SuaSenha'");<br /><br />         conv.Upgrade(@"DataSource=C:\ProximoBancoMobile.sdf");<br /><br />     }<br /><br />}

Code 1.1

Explicação do Código

Primeiro
de tudo, importei o System.Data.SqlServerCe
na classe, depois, no método Load,
instanciei a classe SqlCeEngine
passando como parâmetro o endereço do banco de dados antigo com a senha. Depois
usei a variável criada acima, ponto o método chamado Upgrade passando o caminho do novo banco de dados a ser criado.

Bom, espero que
tenham gostado.

Qualquer dúvida é só entrar em contato.

Com mais de 20 anos trabalhando no mercado de tecnologia. Mestre em Engenharia Elétrica voltada para o mundo mobile, com mais de 20 livros publicados e cerca de 700 artigos publicados com intuito de ajudar àqueles que querem aprender a programar (site, software, desktop, serviços, api e mobile). Site pessoal: https://www.mauriciojunior.net - MVP, MCAD, MCP Microsoft

Ver perfil