Caro(a) Leitor(a), hoje eu gostaria de falar rapidamente sobre o DataDirectory para conexão com o banco de dados local. O banco de dados local pode ser usado para web site, desktop ou serviços do Windows. 

Antigamente tínhamos o banco de dados Access com extensão “mdb” para guardar, salvar, editar e excluir informações. Agora temos o SQL Compact Edition, o famoso SQLCE com extensão “sdf”. 

Esse banco parece muito o SQL Express, porém pode ser usado localmente como o antigo Access. A ferramenta de desenvolvimento Visual Studio 2012 já possui ferramentas para criação dese banco e código.

Utilizado:
Ferramenta  Visual Studio 2012
Linguagem C#
Banco de dados local SQL Compact Edition
Importe: System.Data.SqlServerCe

A string de conexão do banco de dados possui geralmente um parâmetro chamado DataDirectory entre “paipe” = |DataDirectory|. Listagem 1.

Listagem 1 – Conexão com o banco
connectionString="Data Source=|DataDirectory|\AppData\MyDatabase.sdf"

Criar o banco de dados

Para criar um banco de dados local basta adicionar um novo item clicando com o botão direito em cima do projeto, escolha a opção Add, depois New Item. Imagem 1.

Imagem 1 – Criando novo item.

Procure dentro do template o nome Local DataBase. Digite o nome que achar melhor e clique no botão Add.  Imagem 2.


Imagem 2 – Adicionando banco local

Criando o banco, a string de conexão é criada dentro do arquivo de configuração do projeto. No caso deste projeto, a string é criada dentro do arquivo App.config. Listagem 2. 

Listagem 2 – String de conexão criada.
    < connectionStrings >
        < add name="MyDatabaseConnectionString"
            connectionString="Data Source=|DataDirectory|\AppData\MyDatabase.sdf"
            providerName="Microsoft.SqlServerCe.Client.4.0" />
    < / connectionStrings >

Note que existe depois do Data Source o nome DataDirectory , o nome da pasta que escolheu e o nome do banco de dados.

Utilizando DataDirectory

Para utilizar este caminho |DataDirectory| basta precisa atribuir um parâmetro no início do seu projeto, ou seja, depois de abrir o programa com dois cliques. 

Alguns desenvolvedores tiram esse parâmetro |DataDirectory| da string de conexão, porque não sabem usar ou não sabem pra que serve. Vamos dizer que o seu programa pode ser instalado em qualquer lugar do computador e o seu programa precisa encontrar o banco de dados.

Para resolver este problema, busquei o endereço corrente do programa e indiquei o endereço do DataDirectory. Listagem 3.

Listagem 3 – Adicionando o DataDirectory
public Form1() { InitializeComponent(); AppDomain.CurrentDomain.SetData("DataDirectory", Environment.CurrentDirectory); }

Coloquei o comando de Domain atribuindo o nome DataDirectory e o diretório corrente da aplicação. Com a linha de comando adicionado na listagem 3 o caminho da aplicação é pego.

O próximo passo para conectar o banco de dados com a string escrito DataDirectory é simples, mostrado nos próximos passos.

Criei um botão no form e cliquei duas vezes para gerar o código. Imagem 3.


Imagem 3 – Criação de form com um botão.

Dentro do método, busquei a classe responsável pela conexão e driver com o banco de dados local, informei de onde pegar a string de conexão e chamei o Open. Listagem 4.

Listagem 4 – Conectando no banco de dados.
private void cmdConnection_Click(object sender, EventArgs e)
        {
            SqlCeConnection c = new SqlCeConnection(System.Configuration.ConfigurationManager.
ConnectionStrings["MyDatabaseConnectionString"].ToString());
            c.Open();
        }


Note que o nome da connectionString é MyDatabaseConnectionString localizada dentro do arquivo de configuração do projeto/aplicação. Para finalizar, a conexão com o banco funcionou sem qualquer problema.

Lembro que, a melhor forma de utilizar conexão com o banco de dados é utilizar classes internas ou privadas e em projetos diferentes, ou seja, na camada de dados (DAL ou DAO).

Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site www.mauriciojunior.org