Montando string de conexão para banco de dados em C# através de um arquivo xml personalizado
Publicado por Claudio Rocha de Jesus (última atualização em 31/10/2009)
[ Hits: 12.546 ]
Homepage: www.zambotecnologia.com.br
Este arquivo abre um arquivo xml com a(s) configuração(ões) do(s) banco de dados especificado e monta as strings de conexão necessárias para cada banco. A intenção é que ao adicionar uma nova cláusula no arquivo xml já seja automaticamente incluída na string de conexão.
Somente é necessário criar uma nova classe caso deseje que se conecte em um banco diferente dos aqui já especificados.
/**
* Este arquivo abre um arquivo xml com a(s) configuração(ões) do(s)
* banco de dados especificado e monta as strings de conexão necessária
* para cada banco.
* A intenção é que ao adicionar uma nova clausula no arquivo xml já seja automaticamente
* incluída na string de conexão.
* Somente é necessário criar uma nova classe caso deseje que se conecte em um banco
* diferente dos aqui já especificados.
*
* @category Biblioteca
* @package DataAccesLayer
* @author Claudio Rocha de Jesus <crochadejesus@yahoo.com.br>
* @since 0.1
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
namespace DataAccessLayer
{
/// <summary>
/// Irá abrir o arquivo de configuração xml e montar uma string de conexão com banco de dados.
/// </summary>
public class OpenConfig
{
/*
* Declaração de variaveis
*/
private string localPath, fileName;
public OpenConfig()
{
this.localPath = "\\Users\\rocha\\workspace\\travelace.ti\\config\\";
this.fileName = "dbConfig.xml";
}
/// <summary>
/// Define o diretorio local onde esta o arquivo de configuração.
/// </summary>
/// <param name="localPath"></param>
public void setLocalPath(string localPath)
{
this.localPath = localPath;
}
/// <summary>
/// Retorna o caminho do diretório local
/// </summary>
/// <returns>localPtah</returns>
public string getLocalPath()
{
return localPath;
}
/// <summary>
/// Define o nome do arquivo de configuração
/// </summary>
/// <param name="fileName"></param>
public void setfileName(string fileName)
{
this.fileName = fileName;
}
/// <summary>
/// Retorna o nome do arquivo de configuração
/// </summary>
/// <returns>fileName</returns>
public string getfileName()
{
return fileName;
}
/// <summary>
/// Método que irá montar a string de conexão para o banco de dados PostgreSQL
/// </summary>
/// <returns>string</returns>
public string readDriverPGSQL()
{
string stConnect = "";
try
{
XmlDocument domDoc = new XmlDocument();
string completePath = (this.localPath + this.fileName);
int passada = 0;
domDoc.Load(completePath);
//Seleciona somente o node com atributo igual ao especificado. Utilizando XPath.
foreach (XmlNode node in domDoc.SelectSingleNode("//driver[@name='PGSQL']"))
{
passada++;
string strName = node.Name;
string strValue = node.InnerText;
//Converte o caracter underscore por espaço. No node Name
StringBuilder newStrName = new StringBuilder(strName);
newStrName.Replace("_", " ");
//Monta a string de conexão
if (passada == 1)
{
stConnect += (newStrName + "=" + strValue);
}
else
{
stConnect += "; " + (newStrName + "=" + strValue);
}
}
//Retorna string preenchida
return (stConnect);
}
catch(XmlException xmlEx)
{
return (xmlEx.Message);
}
catch(Exception ex)
{
return (ex.Message);
}
}
/// <summary>
/// Método que irá montar a string de conexão para o banco de dados Microsoft SQL Server
/// </summary>
/// <returns>string</returns>
public string readDriverMSSQL()
{
string stConnect = "";
try
{
XmlDocument domDoc = new XmlDocument();
string completePath = (this.localPath + this.fileName);
int passada = 0;
domDoc.Load(completePath);
//Seleciona somente o node com atributo igual ao especificado. Utilizando XPath.
foreach (XmlNode node in domDoc.SelectSingleNode("//driver[@name='MSSQL']"))
{
passada++;
string strName = node.Name;
string strValue = node.InnerText;
//Converte o caracter underscore por espaço. No node Name
StringBuilder newStrName = new StringBuilder(strName);
newStrName.Replace("_", " ");
//Monta a string de conexão
if (passada == 1)
{
stConnect += (newStrName + "=" + strValue);
}
else
{
stConnect += "; " + (newStrName + "=" + strValue);
}
}
//Retorna string preenchida
return (stConnect);
}
catch (XmlException xmlEx)
{
return (xmlEx.Message);
}
catch (Exception ex)
{
return (ex.Message);
}
}
}
}
Arquivo XML dbConfig.xml
<?xml version="1.0" encoding="utf-8" ?>
<!--Não insira comentários dentro dos nós abaixo-->
<dbConfig>
<driver name="PGSQL">
<Server>192.100.100.100</Server>
<Port>5432</Port>
<User_Id>admin</User_Id>
<Password>12345678</Password>
<Database>db_pgsql</Database>
</driver>
<driver name="MSSQL">
<Server>192.100.100.110</Server>
<User_Id>admin</User_Id>
<Password>12345678</Password>
<Database>db_mssql</Database>
</driver>
</dbConfig>
Pequeno simulador de Banco de Dados
MakeInt - gerador de wordlist numérica
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como quebrar senha usando john the ripper
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Alguém já testou o novo COSMIC Desktop? O que achou? (3)
Portal de autenticação em loop (0)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (0)









