NAO CARREGA DADOS NA DROP DOWN LIST

RENNERFERNANDES 23/03/2011 10:41:45
#368882
Estou iniciando em asp.net, estou usando vs2008, porém ao tentar carregar dados para uma drop down list, nada acontece

Este é o código

SQL = [Ô]SELECT TOP 1 [ô][ô] AS id, [ô][ô] AS nome [Ô]
+ [Ô]FROM disciplinas [Ô]
+ [Ô]UNION [Ô]
+ [Ô]SELECT id,nome [Ô]
+ [Ô]FROM disciplinas [Ô]
+ [Ô]ORDER BY nome[Ô];

cmd = new OleDbCommand(SQL, conn);
reader = cmd.ExecuteReader();

ddlDisciplinas.DataSource = reader;
ddlDisciplinas.DataTextField = [Ô]nome[Ô];
ddlDisciplinas.DataValueField = [Ô]id[Ô];
ddlDisciplinas.DataBind();

ele puxa os dados porém no DataBind(); os dados somem.
RENNERFERNANDES 23/03/2011 10:43:29
#368883
Esqueci, essa drop down esta em um panel, que só é ativado quando clica no botão incluir.

<asp:Panel ID=[Ô]pnlIncluir[Ô] runat=[Ô]server[Ô] Style=[Ô]display: none[Ô] CssClass=[Ô]modalPopupLarge[Ô] >
<table>
<tr>
<td>Disicplina:</td>
<td><asp:DropDownList ID=[Ô]ddlDisciplinas[Ô] runat=[Ô]server[Ô] style=[Ô]width:300px;[Ô] ValidationGroup=[Ô]incluir[Ô] />
<asp:CascadingDropDown ID=[Ô]ccdDisciplinas[Ô] runat=[Ô]server[Ô] Category=[Ô]disciplinas[Ô] ContextKey=[Ô][Ô]
Enabled=[Ô]True[Ô] ParentControlID=[Ô]ddlTurma[Ô] ServiceMethod=[Ô]GetDisciplinas[Ô]
ServicePath=[Ô]cascadingdata.asmx[Ô] TargetControlID=[Ô]ddlDisciplinas[Ô] UseContextKey=[Ô]True[Ô]></asp:CascadingDropDown>
<asp:RequiredFieldValidator ID=[Ô]RequiredFieldValidator4[Ô] runat=[Ô]server[Ô]
ControlToValidate=[Ô]ddlDisciplinas[Ô] ErrorMessage=[Ô]*[Ô] ValidationGroup=[Ô]incluir[Ô] /></td>
</tr>

</table>
<center><asp:ImageButton ID=[Ô]btnIncluirDisciplina[Ô] runat=[Ô]server[Ô] ImageUrl=[Ô]~/imagens/bt_iincluir.png[Ô] OnClick=[Ô]OnIncluirDisciplinaClick[Ô] ValidationGroup=[Ô]incluir[Ô] /><asp:ImageButton ID=[Ô]btnFecharIncluir[Ô] runat=[Ô]server[Ô] ImageUrl=[Ô]~/imagens/bt_fechar.png[Ô] CausesValidation=[Ô]false[Ô] />
</center>
</asp:Panel>
ESLEYSANCHES 23/03/2011 12:35:03
#368892
Na verdade vc está fazendo isso no load da página ??
Como vc usa reader, posso sugerir um teste ?? Tente o exemplo abaixo:


SQL = [Ô]SELECT TOP 1 [ô][ô] AS id, [ô][ô] AS nome [Ô]
+ [Ô]FROM disciplinas [Ô]
+ [Ô]UNION [Ô]
+ [Ô]SELECT id,nome [Ô]
+ [Ô]FROM disciplinas [Ô]
+ [Ô]ORDER BY nome[Ô];

cmd = new OleDbCommand(SQL, conn);
reader = cmd.ExecuteReader();

while (reader.read())
{
ddlDisciplinas.Items.Add(reader[[Ô]nome[Ô]].toString());
}
reader.Close();

RENNERFERNANDES 23/03/2011 13:35:17
#368901
nada feito
TECLA 23/03/2011 20:46:56
#368954
Substitua o objeto READER por um DATATABLE, ou DATASET, ou qualquer uma coleção genérica.
RENNERFERNANDES 24/03/2011 09:57:32
#369003
Tecla nada feito, porém eu acima dele o seguinte código roda perfeitamente:

[th][/th]
Cabecalho
SQL = [Ô]SELECT TOP 1 [ô][ô] AS id, [ô][ô] AS nome [Ô]
+ [Ô]FROM situacoesalunos [Ô]
+ [Ô]UNION [Ô]
+ [Ô]SELECT id,nome [Ô]
+ [Ô]FROM situacoesalunos [Ô]
+ [Ô]ORDER BY nome[Ô];

cmd = new OleDbCommand(SQL, conn);
reader = cmd.ExecuteReader();
ddlSituacao.DataSource = reader;
ddlSituacao.DataTextField = [Ô]nome[Ô];
ddlSituacao.DataValueField = [Ô]id[Ô];
ddlSituacao.DataBind();

reader.Close();
TECLA 24/03/2011 21:25:19
#369092
Se você utilizou um DATASET, DATATABLE E DATAREADER e não funcionou, concorda que o problema não está na fonte de dados?
Acabei de fazer um aqui, usando o DATAREADER e o resultado segue na imagem.

RENNERFERNANDES 25/03/2011 09:40:37
#369119
Concordo com você, mas como é possível funcionar em todas as telas, incluisive na própria, porém mudei apenas o nome da tabela. e não funcionar?
Tópico encerrado , respostas não são mais permitidas