Comparando contéudos em dois bancos de dados diferentes

18/12/2014

0

Bom dia, tenho uma aplicação que roda com o seguinte banco PostGres porém preciso fazer um filtro em um banco Access porém não quer da certo, acho que o problema está na conexão, alguém poderia me da um help.

Conexão tá da seguinte forma:

public Conexao_DAO()
{
_stringConexao = @"Dsn=PostgreSQL30;uid=postgres";
cn_conexao_post = new OdbcConnection(_stringConexao);
cn_conexao_post.Open();
}

public Conexao_DAO(bool access = false)
{
try
{
cn_conexao_access = new OleDbConnection();
cn_conexao_access.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Cont2015.mdb";
cn_conexao_access.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Chayene Carmo

Chayene Carmo

Responder

Posts

18/12/2014

Soeuseijothaz

Da uma olhada no link e veja se consegue avançar:

[url:descricao=http://www.dcc.fc.up.pt/~pbrandao/aulas/0203/bd/access.htm]http://www.dcc.fc.up.pt/~pbrandao/aulas/0203/bd/access.htm[/url]
Responder

18/12/2014

Chayene Carmo

Pior que não deu certo, estou usando o OleDB
Responder

26/12/2014

Joel Rodrigues

Poderia ser mais clara sobre o problema? Tem alguma mensagem de erro para auxiliar?
Responder

08/01/2015

Chayene Carmo

Bom dia Joel, então achei que era conexão mas não o problema está no parâmetro, quando uso a mesma instrução no Access ele me retorna resultado na minha aplicação não.
Responder

08/01/2015

Joel Rodrigues

É, já vi bem esse erro. Lá vamos nós outra vez...
Coloca aqui o método onde você faz o filtro com parâmetro que não está dando certo.
Por favor, use as tags de formatação de código disponíveis no fórum.
Responder

09/01/2015

Chayene Carmo

public ArrayList ListarEmpenho(int id_centro_custo)
{
ArrayList listarEmpenhos = new ArrayList();
Nota_Empenho_BO neBO;

using (_minhaConexao = new Conexao_DAO(true))
{
string select = "Select NotaEmpenho.AnoNota, NotaEmpenho.IdNota, NotaEmpenho.IdTipoEmpenho, NotaEmpenho.TotalNota, NotaEmpenho.ValorLiquidado, NotaEmpenho.ValorPago, NotaEmpenho.ValorAnulado, NotaEmpenho.CGC, NotaEmpenho.Tradutora, PlanoConta.IdProjetoOuATividade from NotaEmpenho inner join PlanoConta on NotaEmpenho.Tradutora = PlanoConta.IdTradutora "; /* where (PlanoConta.IdProjetoOuAtividade ='" + id_centro_custo + "') */

OleDbDataReader reader = _minhaConexao.ExecutaLeitura_Access(select);
while (reader.Read())
{
if (reader[9].ToString() != id_centro_custo.ToString())
{
neBO = new Nota_Empenho_BO();
neBO.Ano_Nota = Convert.ToInt32(reader[0]);
neBO.Id_Nota = Convert.ToInt32(reader[1]);
if (Convert.ToInt16(reader[2]) == 00)
{
neBO.Tipo_Empenho = Tipo_Empenho.N_existe;
}
else if (Convert.ToInt16(reader[2]) == 01)
{
neBO.Tipo_Empenho = Tipo_Empenho.Ordinaria;
}
else if (Convert.ToInt16(reader[2]) == 02) if (reader[9].ToString() == id_centro_custo.ToString())
{
neBO.Tipo_Empenho = Tipo_Empenho.Estimativa;
}
else
{
neBO.Tipo_Empenho = Tipo_Empenho.Global;
}
neBO.Total_Nota = Convert.ToDecimal(reader[3]);
neBO.ValorLiquidado = Convert.ToDecimal(reader[4]);
neBO.ValorPago = Convert.ToDecimal(reader[5]);
neBO.ValorAnulado = Convert.ToDecimal(reader[6]);
neBO.CGC = Convert.ToString(reader[7]);
neBO.Tradutora = Convert.ToString(reader[8]);

listarEmpenhos.Add(neBO);
}
}
reader.Dispose();
return listarEmpenhos;
}
}
Responder

09/01/2015

Joel Rodrigues

Primeira tentativa. Faça essa consulta usando parâmetros no OleDbCommand, ao invés de concatenar a string.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar