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();
}
}
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
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)