Preencher combobox de um bd

09/05/2012

Preciso fazer um métod genérico para preencher alguns combobox, que nesse projeto, todos eles vêm damesma tabela, Então ficou mais fácil. No método eu gostaria de passar esses parametros:

public void enchecombo(Comobobox cb)
{
Meu select....
Meu while
cb.Add(meu_campo);
}....

Acontece que o tipo Combobox não existe. Como eu faço(não é código, mas qual using eu uso. Na página aspx está assim o combobox:
<asp:DropDownList runat=server ID=cboEmissor style=font-famiuly:Verdana,font-size=12px width=100%>
<asp:ListItem Text=TODOS Value=00 />
<asp:ListItem Text=BANCO A Value=01 />
<asp:ListItem Text=BANCO B Value=02 />
......
</asp:DropDownList>

É essa combo que eu ieri encher. Meu problema não está no código,mas sim como declarar isso em meu CodeBehind

Pjava

Respostas

09/05/2012

Pjava

Em realidade é um dropdownlist. Bem, consegui montar o método, mas na combo aparece apenas isso:

System.Data.Common.DataRecordInternal

O código que eu fiz foi o abaixo:

public Boolean Execute(DropDownList dl){
........
OracleDataReader dr = comando.ExecuteReader();
if(dr.HasRows)
{
while(dr.Read()
{
string nome = dr[EMI_C_NOME].ToString();
dl.DataSource = dr;
dl.DataBind();
}
}
}
Responder Citar

09/05/2012

Pjava

Meu código completo. Seeu retiro otext e o value, vem o erro citado bem acima. Se deixo, a combo vem com os valores default na tela aspx.

using System;
using System.Linq;
using System.Web;
using System.Data.OracleClient;
using System.Data;
using System.Text;
using System.Configuration;
using System.Collections.Generic;
using System.Web.UI.WebControls;


namespace GetNet.Monitoracao.UI.Web.Graficos
{
public class PreencheComboboxBL
{
private OracleCommand comando;

public Boolean Execute(DropDownList dl)
{
Boolean retorno = false;

string Erro = ;

StringBuilder comandoSQL = new StringBuilder();
comandoSQL.AppendLine(SELECT );
comandoSQL.AppendLine(EMI_C_NOME );
//comandoSQL.AppendLine(, );
comandoSQL.AppendLine(FROM );
comandoSQL.AppendLine(MNT_EMI_EMISSOR );

OracleConnection oracleConexao = new OracleConnection();
oracleConexao.ConnectionString = ConfigurationManager.ConnectionStrings[oracleConexao].ConnectionString;

this.comando = new OracleCommand(comandoSQL.ToString(), oracleConexao);
try
{
oracleConexao.Open();
comando.ExecuteNonQuery();

OracleDataReader dr = comando.ExecuteReader();

dl.DataSource = dr;
dl.DataTextField = dr[EMI_C_NOME].ToString();
dl.DataValueField = dr[EMI_N_CODIGO].ToString();
dl.DataBind();

}
catch (Exception excecao)
{
Erro = excecao.Message;
}
finally
{
oracleConexao.Close();
}

comando.Dispose();
retorno = true;
return retorno;
}
}
}

//Aqui eu chamo a classe
private PreencheComboboxBL cb = new PreencheComboboxBL();

protected void Page_Load(object sender, EventArgs e)
{
cb.Execute(cboEmissor);

}
Responder Citar

09/05/2012

Pjava

Resolvi assim:

......

OracleDataReader dr = comando.ExecuteReader();

dl.DataSource = dr;
dl.DataTextField = EMI_C_NOME;
dl.DataValueField = EMI_N_CODIGO;
dl.DataBind();

........
Responder Citar