terça-feira, 12 de janeiro de 2010

Remover Caracteres Especiais de String C#

Função para substituir caracteres especiais de string como exemplo:
ç = c, ã = a, ê = e, í = i......
private string RemoveCaracteresEspeciais(string texto)
{
......texto = texto.Normalize(NormalizationForm.FormD);
......StringBuilder sb = new StringBuilder();
......foreach (char c in texto.ToCharArray())
......if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
............sb.Append(c);
......return sb.ToString();
}

quinta-feira, 17 de dezembro de 2009

Backup e Restore PostgreSQL

Depois de enfrentar algumas dificuldades para backup da base de dados
PostgreSQL 8.4 e restaurar a mesma, consegui cria uma classe com as
funções de backup e restore utilizando o pg_dump.exe e o pg_restore.exe.

Em anexo código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace Servicos
{
.....public class Backup
.....{
..........private String _IpServidor;

..........private String _Porta;
..........private String _Usuario;
..........private String _Senha;
..........private String _DB;
..........private String _LocalArquivoPostgres;

..........public Backup(String ipServidor, String localArquivoPostgres)
..........{
...............this._IpServidor = ipServidor;
...............this._Porta = RepositorioConfig.Porta;
...............this._Usuario = RepositorioConfig.Usuario;
...............this._Senha = RepositorioConfig.Senha;
...............this._DB = RepositorioConfig.DB;
...............this._LocalArquivoPostgres = localArquivoPostgres;
..........}

..........public void BackupDatabase(String localSalvar)
..........{
...............try
...............{
....................Environment.SetEnvironmentVariable("PGPASSWORD", _Senha);
....................string backupFile = localSalvar + "Backup" + DateTime.Now.ToString("_ddMMyyyy_HHmmss") + ".backup";
....................string BackupString = "-ibv -Z3 -f \"" + backupFile + "\" " + "-Fc -h " + _IpServidor + " -U " + _Usuario + " -p " + _Porta + " " + _DB;
....................Process proc = new System.Diagnostics.Process();
....................proc.StartInfo.FileName = _LocalArquivoPostgres + "\\pg_dump.exe";
....................proc.StartInfo.Arguments = BackupString;
....................proc.Start();
....................proc.WaitForExit();
....................proc.Close();
...............}
...............catch (Exception ex)
...............{
....................throw new Exception("Ocorreu um erro desconhecido ao tentar criar o arquivo de backup. ", ex);
...............}
..........}

..........public void RestoreDataBase(String fileBackup)
..........{
...............try
...............{
....................Environment.SetEnvironmentVariable("PGPASSWORD", _Senha);
....................string restoreString = "-i -h " + _IpServidor + " -p " + _Porta + " -U " + _Usuario + " -c -d " + _DB + " -v \"" + fileBackup + "\"";
....................Process proc = new System.Diagnostics.Process();
....................proc.StartInfo.FileName = _LocalArquivoPostgres + "\\pg_restore.exe";
....................proc.StartInfo.Arguments = restoreString;
....................proc.Start();
....................proc.WaitForExit();
....................proc.Close();
...............}
...............catch (Exception ex)
...............{
....................throw new Exception("Ocorreu um erro desconhecido ao tentar restaurar o banco de dados. ", ex);
...............}
..........}
.....}
}