Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
30 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 30 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 2

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 2

Visite meu canal no Youtube

20/1/2017, 00:45 por ImRicoh

VFP Unlimited


Comentários: 0

Bloquear edição do ListBox

17/6/2010, 15:13 por Julio

Pessoal

Boa Tarde!

Tnho uma listbox apenas para exibir o resultado.
Preciso bloquear a listbox …

Comentários: 17

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 0

Estatísticas
Temos 6991 usuários registrados
O último usuário registrado atende pelo nome de cpmacedo

Os nossos membros postaram um total de 8 mensagens em 3 assuntos

Usando FLUORINE FX

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido Usando FLUORINE FX

Mensagem por nathalia.delavi em 11/11/2011, 13:51

Gente to fazendo uma aplicação que preciso receber no C# um ArrayCollection do Flex Builder 3.

O código C# está assim:

Código:
public Boolean AutorizarPagamento(ArrayList arrayautorizar)
        {
            SqlCommand cmd = new SqlCommand();
            try
            {
                cmd.Parameters.Clear();
                cmd.Connection = DbCitium.conn();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = @"BEGIN TRAN AutorizarPagamento;";
                int j = arrayautorizar.Count;

                ArrayList arraytemp = new ArrayList(arrayautorizar);
               
                for (int i = 0; i < j; i++)
                {
                  [b] ArrayList temp = (ArrayList)arraytemp[i];[/b]
                    for (int ii = 0; ii < temp.Count; ii++)
                    {
                        cmd.CommandText += @"UPDATE Contas_a_Pagar SET
                                        v_pagamento_autorizado = @v_pagamento_autorizado,
                                        v_quem_autorizou = @v_quem_autorizou

                                        WHERE i_id_conta_a_pagar = @i_id_conta_a_pagar;";

                        SqlParameter param;

                        param = new SqlParameter("@i_id_conta_a_pagar", SqlDbType.Int);
                        param.IsNullable = true;
                        param.Value = temp[i];
                        cmd.Parameters.Add(param);

                        param = new SqlParameter("@v_quem_autorizou", SqlDbType.VarChar, 50);
                        param.IsNullable = true;
                        param.Value = "TESTE";
                        cmd.Parameters.Add(param);

                        param = new SqlParameter("@v_pagamento_autorizado", SqlDbType.VarChar, 10);
                        param.IsNullable = true;
                        param.Value = "SIM";
                        cmd.Parameters.Add(param);

                        cmd.Prepare();
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }
                }
                cmd.CommandText += @"COMMIT TRAN AutorizarPagamento;";
                return true;
            }

            catch (SqlException e)
            {
                throw new Exception("Erro ao alterar Registro. Descrição: " + DbCitium.getSQLErrors(e));
                cmd.Connection = DbCitium.conn();

                cmd.Parameters.Clear();

                cmd.CommandType = CommandType.Text;
                cmd.CommandText+= @"ROLLBACK TRAN AutorizarPagamento";
            }
            catch (Exception e)
            {
                throw new Exception("Erro ao alterar Registro. Descrição: " + e.Message);
                cmd.Connection = DbCitium.conn();

                cmd.Parameters.Clear();

                cmd.CommandType = CommandType.Text;
                cmd.CommandText += @"ROLLBACK TRAN AutorizarPagamento";
            }
            finally
            {
                cmd = null;
            }

               
            }


Porém na hora de de colocara a posição i no ArrayList temp ele me devolve o seguinte erro:

Não é possível converter um objeto do tipo 'Citium.SisWeb.Contas_a_Pagar' no tipo 'System.Collections.ArrayList'

Alguém sabe o que pode ser?

nathalia.delavi
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Usando FLUORINE FX

Mensagem por Marcos Guedes em 11/11/2011, 14:34

Nathalia, não observei muitos detalhes, mas da forma como está, você está tentando transforma um item de um ArrayList, em outro ArrayList, por isso está ocorrendo o erro. (que neste caso, só é observado em tempo de execução)

Tente fazer o seguinte para ver se resolve...

Altere a linha de código:
Código:
ArrayList arraytemp = new ArrayList(arrayautorizar);

Para:
Código:
ArrayList arraytemp = arrayautorizar;

E a linha:
Código:
ArrayList temp = (ArrayList)arraytemp[i];

Para:
Código:
ArrayList temp = arraytemp;

Resolve?

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Usando FLUORINE FX

Mensagem por nathalia.delavi em 11/11/2011, 14:47

O problema é que não referenciando índice no segundo código, como ele vai preencher temp com cada uma das linhas do arraytemp?


nathalia.delavi
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Usando FLUORINE FX

Mensagem por nathalia.delavi em 11/11/2011, 14:54

Isso mesmo que ocorreu..

Quando tentei inserir o valor no banco ele fala assim:

"Não é possível converter Contas_a_Pagar em Int32"

Ele não ta lendo o elemento dentro de [i] e dentro de [i_id_conta_a_pagar]

nathalia.delavi
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Resolvido Re: Usando FLUORINE FX

Mensagem por Marcos Guedes em 14/11/2011, 10:10

Nathalia, pelo que entendi do código, arraytemp é uma variável que guardará uma cópia das informações contidas em arrayautorizar, correto?

Sendo assim, basta alterar a linha:
Código:
ArrayList arraytemp = new ArrayList(arrayautorizar);

Para:
Código:
ArrayList arraytemp = arrayautorizar;

O que eu não entendi foi a seguinte linha:
Código:
ArrayList temp = (ArrayList)arraytemp[i];

Por que você está tentando converter o item de um ArrayList em outro ArrayList?
A variável arrayautorizar é uma coleção de ArrayList's?

Talvez você nem precisasse da variável temp.
Então seu código ficaria assim:
Código:
public Boolean AutorizarPagamento(ArrayList arrayautorizar)
        {
            SqlCommand cmd = new SqlCommand();
            try
            {
                cmd.Parameters.Clear();
                cmd.Connection = DbCitium.conn();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = @"BEGIN TRAN AutorizarPagamento;";
                int j = arrayautorizar.Count;

                ArrayList arraytemp = arrayautorizar;

                for (int i = 0; i < j; i++)
                {
                    for (int ii = 0; ii < arraytemp.Count; ii++)
                    {
                        cmd.CommandText += @"UPDATE Contas_a_Pagar SET
                                        v_pagamento_autorizado = @v_pagamento_autorizado,
                                        v_quem_autorizou = @v_quem_autorizou

                                        WHERE i_id_conta_a_pagar = @i_id_conta_a_pagar;";

                        SqlParameter param;

                        param = new SqlParameter("@i_id_conta_a_pagar", SqlDbType.Int);
                        param.IsNullable = true;
                        param.Value = arraytemp[i];
                        cmd.Parameters.Add(param);

                        param = new SqlParameter("@v_quem_autorizou", SqlDbType.VarChar, 50);
                        param.IsNullable = true;
                        param.Value = "TESTE";
                        cmd.Parameters.Add(param);

                        param = new SqlParameter("@v_pagamento_autorizado", SqlDbType.VarChar, 10);
                        param.IsNullable = true;
                        param.Value = "SIM";
                        cmd.Parameters.Add(param);

                        cmd.Prepare();
                        cmd.ExecuteNonQuery();
                        cmd.Dispose();
                    }
                }
                cmd.CommandText += @"COMMIT TRAN AutorizarPagamento;";
                return true;
            }

            catch (SqlException e)
            {
                throw new Exception("Erro ao alterar Registro. Descrição: " + DbCitium.getSQLErrors(e));
                cmd.Connection = DbCitium.conn();

                cmd.Parameters.Clear();

                cmd.CommandType = CommandType.Text;
                cmd.CommandText += @"ROLLBACK TRAN AutorizarPagamento";
            }
            catch (Exception e)
            {
                throw new Exception("Erro ao alterar Registro. Descrição: " + e.Message);
                cmd.Connection = DbCitium.conn();

                cmd.Parameters.Clear();

                cmd.CommandType = CommandType.Text;
                cmd.CommandText += @"ROLLBACK TRAN AutorizarPagamento";
            }
            finally
            {
                cmd = null;
            }
        }

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Resolvido Re: Usando FLUORINE FX

Mensagem por nathalia.delavi em 14/11/2011, 21:22

Marcos, consegui resolver o problema... Deixa eu explicar pra ficar aqui caso alguém tenha essa mesma dúvida:

O meu problema era pra acessar as informações dentro de um array bidimensional, precisaria acessá-las uma de cada vez fazer o update para o banco e depois fazer um commit ok?

Eu havia criado uma classe chamada: Contas_a_Pagar com todos os membros necessários a incorporação no banco e também com os métodos para get e set. Só que essa classe não aceita receber dados bidimensionais então coloquei o recebimento desses dados num array, chamado: arrayautorizar. Para colocar os dados do arrayautorizar na classe Contas_a_Pagar e acessá-los eu fiz assim:


Código:
for(int i = 0; i < arrayautorizar.count; i++)
{
          Conta_a_Pagar arraytemp = (Conta_a_Pagar) arrayautorizar[i];
... //resto do código
}

Na hora de acessar o dado do arraytemp era só fazer assim:

Código:
param.value = arraytemp.i_id_conta_a_pagar;

Simples né??

O caso que eu tava tentando acessar do jeito errado e convertendo os arquivos do jeito errado, tentando colocar um dos indices bidimensionais dentro de um array unidimensional. A idéia tava certa... O jeito de fazer que tava errado... hahahaha


Valeusss!! =D

nathalia.delavi
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum