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.215 ]
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>
Programa CONSULTA/ PESQUISA/ ADICIONA/ EXCLUI registros em arquivos
Pilhas C/C++ - Pares e ímpares
leitura/escrita de dados/estruturas em arquivo
MakeInt - gerador de wordlist numérica
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta