Altevir 0 Denunciar post Postado Fevereiro 15, 2011 Boa Tarde!! Pessoal preciso de uma ajuda... Estou realizando uma consulta no banco de dados atraves de uma funçao criada no ASP.NET e criando um DataTable com esse resultado do select. Gostaria de pegar esse resultado e retornar para o Flex para popular um DataGrid, até consegui fazer isso usando ArrayList com DataReader no .Net, porem, na propriedade DateField do DataGrid no Flex estou tendo que colocar o indice (0, 1, etc) do Array correspondente ao nome do campo da tabela, se eu colocar o nome, o flex nao encontra e nao popula a Grid. Alguem tem uma ideia de como retornar nao somente os dados da consulta mas tambem o nome dos campos para poder utilizar no flex, porque com indices fica inviavel o codigo. Public Function buscaClientes() As ArrayList Dim Conn As New SqlConnection(GetConnectionString()) Conn.Open() Dim Cmd As New SqlCommand("Select CodCliente, Nome From Clientes", Conn) Dim DReader As SqlDataReader = Cmd.ExecuteReader() Dim Lista As New ArrayList() While DReader.Read Dim values(DReader.FieldCount - 1) As Object DReader.GetValues(values) Lista.Add(values) End While Return Lista End Function Estou utilizando FluorineFx fazer a comunicaçao entre o ASP.Net e o Flex, e esta funcionando corretamente. :ermm: Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Fevereiro 15, 2011 Você tem que debugar, você sabe o que ta indo pro flex? testou pra ve se ta indo todos os registros? Ta usando algum proxu debbuger? Se não experimen ta o Charles. Abs Compartilhar este post Link para o post Compartilhar em outros sites
Altevir 0 Denunciar post Postado Fevereiro 16, 2011 Você tem que debugar, você sabe o que ta indo pro flex? testou pra ve se ta indo todos os registros? Ta usando algum proxu debbuger? Se não experimen ta o Charles. Abs Opaaa Entao, debuguei o codigo sim, todos os registros estao indo de forma correta, porem, no flex eu pego o retorno da minha funçao do ASP.Net atraves do result e jogo dentro de um ArrayCollection, ele preenche corretamente, mas eu nao queria trabalhar com indices do Array para identificar qual o campo que eu quero pegar o valor, e sim trabalhar com o nome dos campos que eu tenho na minha tabela, porque imagine ter que ficar setando o campo da sua tabela atraves de indices e nao atraves do nome dos campos, fica complicado. Ontem mesmo consegui resolver, criei classes no ASP.Net (Atributos, Metodos e Construtores) e assim consigo pegar o nome do campo para trabalhar dentro do Flex, e uma questao que eu nao conhecia (se estiver errado me corrijam) é a de que no C# voce pode colocar o nome do seu construtor com o mesmo nome da sua Classe por exemplo: public class Pessoa { public Pessoa(int _idPessoa) } } ja no ASP.Net/VB.Net o seu construtor fica como: Public Class Pessoa Public Sub New(ByVal _idPessoa As Integer) End Sub End Class ai quando eu faço a chamado da minha classe pelo Flex, ele me retorna o Fault informando que nao existe Construtor do Tipo Pessoa, ou seja, nao encontra o nome do Construtor (Public Sub New). Eu resolvi fazendo da seguinte forma, criei uma classe chamada DadosPessoas, nessa eu guardo os Atributos, Metodos e Construtores. Ai na minha Classe Pessoa ("Pai" digamos assim), essa é a classe que eu chamo do Flex, eu faço a chamada dessa outra classe chamada DadosPessoas, e com o construtor dessa classe eu jogo as informaçoes dentro de um ArrayList e retorno a lista para o Flex. Exemplo: Public Class Pessoas Public Function buscaPessoa(ByVal ID As Integer) As ArrayList Dim listaPessoas As New ArrayList() Dim DadosPessoa As DadosPessoas (minha classe com os Atributos, Metodos, Construtores) Dim Dados As Object Dim Conn As New SqlConnection(GetConnectionString()) Conn.Open() Dim Cmd As New SqlCommand() Dim TabPessoas As New DataTable() Cmd.Connection = Conn Cmd.CommandText = "Select * From Pessoas Where ID=" & ID Cmd.CommandType = CommandType.Text TabClientes.Load(Cmd.ExecuteReader()) For Each Dados In TabClientes.Rows DadosPessoas = New DadosPessoas(Dados("ID"), Dados("Nome")) listaPessoas.Add(DadosPessoas) Next Return listaPessoas End Function Ufffaa....heheh Deu tudo certo ate o momento. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Fevereiro 16, 2011 Um construtor por padrão tem o mesmo nome da classe, sempre, pelo menos na maioria das linguagens.Com php isso é feito tão simples. Abs Compartilhar este post Link para o post Compartilhar em outros sites