Com o projeto anterior aberto vamos primeiramente mudar a nossa Connection String, mas porque mudaríamos se ela está funcionando ?
Bom a princípio vamos mudar por causa que do jeito que ela está configurada, caso aja algum erro de escrita na string, ele não será apresentado pelo Visual Studio.
1) Comente esta linha em seu código: //string connectionString = @"Data Source=(localdb)\Projects;Initial Catalog=CADASTRO;Integrated Security=True";
2) Em seguida iremos criar um construtor de conexão para isso podemos fazer um SqlConnectionStringBuilder. Então faça o seguinte:
var ConBuilder = new SqlConnectionStringBuilder();
3) Agora possuímos um "construtor"(Não é realmente um construtor, estou usando a palavra para fins didático) de conexão, através dele, iremos atribuir os dados da conexão que estavamos utilizando anteriormente.
4) Então vamos fazer o seguinte, digite ConBuilder. e aperte ctrl+espaço. Você verá todas as opções disponíveis para montar uma conexão utilizando o ConBuilder.
5) Então configure o ConBuilder com as propriedades DataSource, Initial Catalog e IntegratedSecurity como foi configurado anteriomente.
6) Os seus parametros devem estar mais ou menos assim:
ConBuilder.DataSource = @"(localdb)\Projects";
ConBuilder.InitialCatalog = "CADASTRO";
ConBuilder.IntegratedSecurity = true;
7) Agora que recriamos a nossa conexão através do StringBuilder, vamos criar a nossa string de conexão que será usada na abertura da conexão.
8) Faça: var ConnectionString = ConBuilder.ConnectionString;
9) E utilizaremos essa String no nosso SqlConnection, porem também iremos fazer outra alteração, remos manter a variação de conexão em apenas um escopo da nossa aplicação, para isso faça o seguinte, mude a sua linha de conexão para:
var con = new SqlConnection(ConnectionString)
10) Agora iremos utilizar a palavra reservada Using para manter a nossa variável con somente dentro deste escopo.
using (var con = new SqlConnection(ConnectionString)){ ... //Restante do código de conexão}
Opcional: Agora que possuímos um escopo de conexão, podemos retirar o nosso try catch, pois caso aja algum erro na conexão, ele será de fácil identificação.
11) O seu código deverá estar assim:
using (var con = new SqlConnection(ConnectionString)){
con.Open();
Console.WriteLine("Conexão com o banco de dados efetuada com êxito!");
Console.WriteLine("Estado da conexão "+ con.State);
con.Close();
Console.WriteLine("Estado da conexão " + con.State);
}
12) Faça o teste do código para ter certeza de ter feito os procedimentos corretamente.
13) Caso o código seja compilado com sucesso, podemos acrescentar uma linha para que ele fique pausado por um tempo, então acrescente após o escopo da conexão uma ReadKey.
Console.ReadKey();
14) Agora vamos exibir a nossa string de conexão na tela, para verificarmos se ela foi configurada corretamente igual anteriormente, para isto, acrescente antes de abrir a conexão: Console.WriteLine("String de conexão: " + ConnectionString);
15) O seu código deverá estar assim:
using (var con = new SqlConnection(ConnectionString)){
Console.WriteLine("String de conexão: " + ConnectionString);
con.Open();
Console.WriteLine("Conexão com o banco de dados efetuada com êxito!");
Console.WriteLine("Estado da conexão "+ con.State);
con.Close();
Console.WriteLine("Estado da conexão " + con.State);
}
Console.ReadKey();
16) Teste o código. E você verá na tela que será exibida que a String de conexão está configurada como anteriormente, porem de forma mais organizada evidenciando onde poderá haver algum erro.
17) Caso o seu código esteja funcionando, a tela será exibida como a imagem a cima. Veja que a string de conexão está exatamente como foi configurada anteriormente.
18) Agora vamos deixar o nosso código um pouco mais organizado, selecione as seguintes linhas:
19) Agora dê um clique com o botão direito em uma área do editor, e vá até o menu Refactor > Extract Method, e digite o nome do método como GetConnectionString ou um nome que você achar melhor.
20) O método criado irá ter como retorno a sua String Builder. Observe como o seu código ficará mais organizado.
21) Outra opção que nós temos é não colocar a String de Conexão fisicamente no código, como ela mudará de acordo com o lugar que você efetuar o deploy da aplicação, vamos colocar as informações de conexões no arquivo de configuração da aplicação.
22) Então abra o seu arquivo de configuração App.config , localizado na Solution Explorer.
23) Abaixo de <Configuration> escreva <ConnectionString>, você verá que a própria ferramenta já irá localizar a função.
24) Em seguida vamos adicionar a nossa string de conexão, então vamos primeiro utilizar o "add name" para configurar o nome da nossa string. Então fala...
<add name = "CADASTRO" ...>
25) Em seguida, vamos adicionar a nossa string de conexão, aquela que comentamos no início deste tutorial.
<add name = "CADASTRO" connectionString = "Data Source=(localdb)\Projects;Initial Catalog=CADASTRO;Integrated Security=True";
26) Salve o seu App.Config, feche-o e volte ao seu código principal. Vamos agora criar uma outra versão do nosso método GetConnectionString (); aquele que foi refatorado. :)
27) Vamos renomear o nosso método GetConnectionString () para GetConnectionStringBuilder ( ), e em seguida vamos criar um novo método com o nome, GetConnectionStringFromConfig ( ).
private static string GetConnectionStringFromConfig ( )
{
}
28) Vamos agora, importar a biblioteca necessária para a utilização do App.Config, então declare no topo do código a biblioteca using System.Configuration; .
29) Para efetuarmos o nosso teste, vamos pedir para a nossa variável ConnectionString ler o método GetConnectionStringFrimConfig ( ). Então altere,
var ConnectionString = GetConnectionString () ;
para
var ConnectionString = GetConnectionStringFromConfig () ;
30) Vamos agora incluir o Assembly necessário para a leitura do App.Config, para isso vamos clicar com o botão direito em nossa References no Solution Explorer. e em seguida em ADD.
31) Na janela que irá surgir, procure a referencia System.Configuration , selecione-a e clique em OK.
32) Volte ao método GetConnectionStringFromConfig () e vamos criar o retorno do método, para isso vamos utilizar o ConfigurationManager,então faça:
33) Comente as linhas :
/*private static string GetConnectionStringBuilder()
{
var ConBuilder = new SqlConnectionStringBuilder();
ConBuilder.DataSource = @"(localdb)\Projects";
ConBuilder.InitialCatalog = "CADASTRO";
ConBuilder.IntegratedSecurity = true;
var ConnectionString = ConBuilder.ConnectionString;
return ConnectionString;
}*/
34) Agora teste o seu código, e você verá que ele funcionará com bem menos linhas de código necessárias. Caso você queira remover o método anterior, você pode faze-lo.
35) E é isso aí, em caso de dúvidas, erros ou sugestões, comentem abaixo!
Nenhum comentário:
Postar um comentário