Preencher ListBox com dados de uma tabela

21/02/2008

0

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();
}
}


Pestanajr

Pestanajr

Responder

Posts

21/02/2008

Ricardo Silva

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.

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


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