Array
(
)

Preencher ListBox com dados de uma tabela

Pestanajr
   - 21 fev 2008

Bom dia,

sou iniciante em asp.net (C#), e estou tentando preencher um listbox utilizando dados de uma tabela. na verdade estou utilizando um modelo passado em um curso, e neste foi criada uma classe ´empresas´ que é instanciada onde faço um While (segue código abaixo). Quando mando rodar aparece o erro ´Specified cast is not valid´ sobre o conteúdo do While. Alguém poderia me ajudar?

Obrigado

Pestana

Classe Empresas:
---------------------------------------------------------------------------
namespace WebView
{
public class Empresas
{
public Empresas(int Emp_id, string Emp_nome, string Emp_razao)
{
//CONSTRUTOR
this.emp_id = emp_id;
this.emp_nome = emp_nome;
this.emp_razao = emp_razao;
}

private int Emp_Id;
public int emp_id
{
get { return Emp_Id; }
set { Emp_Id = value; }
}

private string Emp_Nome;
public string emp_nome
{
get { return Emp_Nome; }
set { Emp_Nome = value; }
}

private string Emp_Razao;
public string emp_razao
{
get { return Emp_Razao; }
set { Emp_Razao = value; }
}

}
}

Código para Carregar ListBox:
-------------------------------------------------------------

private void carregaListaEmpresas()
{
ListBoxEmpresas.Items.Clear();
try
{
meuComandoSQL = minhaConexaoBancoDados.GetCommandObject();
meuComandoSQL.CommandType = CommandType.Text;
meuComandoSQL.CommandText = ´SELECT emp_id, emp_nome, emp_razao FROM EMPRESAS ORDER BY emp_nome ASC´;

minhaConexaoBancoDados.AbrirConexao();

SqlDataReader meuLeitor = meuComandoSQL.ExecuteReader();

if (!meuLeitor.HasRows)
{
Response.Redirect(´msgAdm.aspx´);

return;
}

while (meuLeitor.Read())
{
Empresas emp = new Empresas(meuLeitor.GetInt16(meuLeitor.GetOrdinal(´emp_id´)),
meuLeitor.GetString(meuLeitor.GetOrdinal(´emp_nome´)),
meuLeitor.GetString(meuLeitor.GetOrdinal(´emp_razao´)));

ListBoxEmpresas.Items.Add(emp.ToString());
}

}

finally
{
if (minhaConexaoBancoDados != null)
minhaConexaoBancoDados.FecharConexao();
}
}

Ricardo Silva
   - 21 fev 2008


Citação:
public Empresas(int Emp_id, string Emp_nome, string Emp_razao)
{
//CONSTRUTOR
this.emp_id = emp_id;
this.emp_nome = emp_nome;
this.emp_razao = emp_razao;
}


PESTANAJR....

Cara o que acontece é o siguinte, vc não esta usando os parametros do seu construtor, fazendo isso: ´this.emp_id = emp_id;´ é a mesma coisa q dizer ´variavel privada igual a variavel privada´, não é uma erro, mas qbdo vc vai utilizalas, ela é null ai ta este erro de Cast.

Citação:

public Empresas(int Emp_id, string Emp_nome, string Emp_razao){
//CONSTRUTOR
this.emp_id = Emp_id;
this.emp_nome = Emp_nome;
this.emp_razao = Emp_razao;
}


PS. tenho serteza q o copilador de da um warning,
Orientação Objeto é CaseSenssitive então tome cuidado

Duvidas é soh posta