Jump to content

Archived

This topic is now archived and is closed to further replies.

cintiadel

campo do banco no textbox e no dropdown

Recommended Posts

ja tentei de diversas formas, mas esta dando erro.

eu quero trazer um campo de banco do banco de dados no textbox, esse eu consegui so q quando o campo esta com valor null no banco ele me apresenta erro.

tbm gostaria de carregar o dropdown com dados do banco, e trazer o valor selecionado de acordo com a consulta, mas tbm da erro na propriedade selectvalue

 

estou preenchendo da seguinte forma, através do datareader.

 

If dados.HasRows = True Then
				txt_nome.Text = dados("nome")
				ddl_sexo.SelectedValue = dados("sexo")
				txt_dtnasc.Text = dados("dtnasc")
				ddl_pais.SelectedValue = dados("pais")
End IF

Share this post


Link to post
Share on other sites

ja tentei de diversas formas, mas esta dando erro.

 

* eu quero trazer um campo de banco do banco de dados no textbox, esse eu consegui so q quando o campo esta com valor null no banco ao invés de trazer em branco, ele me apresenta erro: "A conversão do tipo 'DBNull' no tipo 'String' não é válida."

 

tbm gostaria de carregar o dropdown com dados do banco, e trazer o valor selecionado de acordo com a consulta, mas tbm da erro na propriedade selectvalue, o erro é: "'ddl_pais' tem um SelectedValue que é inválido porque ele não existe na lista de itens. Nome do parâmetro: value "

 

o html:

<asp:DropDownList ID="ddl_pais" runat="server"  
DataSourceID="sqlPais" DataTextField="PAIS" DataValueField="PAIS" >
</asp:DropDownList>
<asp:SqlDataSource ID="sqlPais" runat="server" 
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
 SelectCommand="SELECT * FROM [paises]">
</asp:SqlDataSource>

estou preenchendo da seguinte forma, através do datareader.

If dados.HasRows = True Then
				txt_nome.Text = dados("nome")
				ddl_sexo.SelectedValue = dados("sexo")
				txt_dtnasc.Text = dados("dtnasc")
				ddl_pais.SelectedValue = dados("pais")
End IF

Share this post


Link to post
Share on other sites

ja tentei de diversas formas, mas esta dando erro.

eu quero trazer um campo de banco do banco de dados no textbox, esse eu consegui so q quando o campo esta com valor null no banco ele me apresenta erro.

tbm gostaria de carregar o dropdown com dados do banco, e trazer o valor selecionado de acordo com a consulta, mas tbm da erro na propriedade selectvalue

 

estou preenchendo da seguinte forma, através do datareader.

 

If dados.HasRows = True Then

txt_nome.Text = dados("nome")

ddl_sexo.SelectedValue = dados("sexo")

txt_dtnasc.Text = dados("dtnasc")

ddl_pais.SelectedValue = dados("pais")

End IF

Você já ouviu falar em LINQ? se sim utilize-o pois não terá problemas, se ainda não viu não perca muito tempo quebrando a cabeça com isso e estude um pouco de LINQ que é muito simples e com certeza vai ajudar bastente nas suas aplicações e provavelmente não terá problemas simples como estes

 

lembrando que o LINQ (LINQ to SQL) é para base de dados SQL Server.

Share this post


Link to post
Share on other sites

Basta utilizar a propriedade ToString que dara certo:

 

txt_nome.Text = dados("nome").ToString
ddl_sexo.SelectedValue = dados("sexo").ToString
txt_dtnasc.Text = dados("dtnasc").ToString
ddl_pais.SelectedValue = dados("pais").ToString

Abraços...

Share this post


Link to post
Share on other sites

Basta utilizar a propriedade ToString que dara certo:

 

txt_nome.Text = dados("nome").ToString
ddl_sexo.SelectedValue = dados("sexo").ToString
txt_dtnasc.Text = dados("dtnasc").ToString
ddl_pais.SelectedValue = dados("pais").ToString

Abraços...

mesmo fazendo isso ele da erro no dropdown pais

q é o q eu tento carregar com o datasource, da erro: "Os métodos de ligação de dados como Eval(), XPath() e Bind() só podem ser usados no contexto de um controle limitado por dados."

isso se eu coloco a propriedade selectedvalue e se eu tiro da o erro q citei acima.

Share this post


Link to post
Share on other sites

o problema n esta ai e sim em carregar o dropdown com o valor q esta no banco, ja chequei o nome na tabela e esta ok.

e no html ou no datasource:

<asp:DropDownList ID="DropDownList1" runat="server" 
						DataSourceID="sqlPais" DataTextField="pais" 
						DataValueField="pais" SelectedValue='<%# Bind("pais) %>'>
					</asp:DropDownList>
					<asp:SqlDataSource ID="sqlPais" runat="server" 
						ConnectionString="<%$ ConnectionStrings:centralConnectionString%>" 
						SelectCommand="SELECT * FROM [paises]]">
					</asp:SqlDataSource>

da erro: Os métodos de ligação de dados como Eval(), XPath() e Bind() só podem ser usados no contexto de um controle limitado por dados.

Share this post


Link to post
Share on other sites

Se o problema esta só no Drop faça um if

 

If(dados("pais").ToString <> string.Empty) Then
  ddl_pais.SelectedValue = dados("pais").ToString
End If

Abraços...

acho q eu descobri o q esta errado, pelo menos eu acho.

o dropdown é preenchido atraves do slqdatasource da tabela paises, mas o valor q tem q vir selecionado é da tabela alunos.

mas continua os mesmos erros....

Share this post


Link to post
Share on other sites

Mas ae não vai dar certo, troque para a mesma tabela.

 

Abraços...

mas ai n ficara como tem q ser...

como disse é de paises, seria a nacionalidade, a maioria é brasileiro, mas tem suas exceções, entao teria q carregar os paises, e selecionar o do aluno.

fiz isso num gridview e funcionou, mas n entendo pq n funciona, sera q é por causa do formview?

Share this post


Link to post
Share on other sites

Mas ae não vai dar certo, troque para a mesma tabela.

 

Abraços...

da certo sim, ja fiz em outro projeto e funcionou n entendo pq da erro no selectedvalue...

desculpa por estar atualizando o topico e q muitas vezes fica esquecido...

Share this post


Link to post
Share on other sites

O valor que você esta passando para o SelectValeu realmente existe no seu DropDown. De repente seu DropDown tem os itens:

 

Value="1" Text="Um"

Value="2" Text="Dois"

 

E esta tentando passar o value 3 para ele. Já verificou isso?

 

Abraços...

Share this post


Link to post
Share on other sites

O valor que você esta passando para o SelectValeu realmente existe no seu DropDown. De repente seu DropDown tem os itens:

 

Value="1" Text="Um"

Value="2" Text="Dois"

 

E esta tentando passar o value 3 para ele. Já verificou isso?

 

Abraços...

esta dessa forma, igual eu fiz em outra aplicação e funcionou.

o campos tbm esta correto pq ja chequei.

nos campos onde listo os itens um por um na mao funciona.

<asp:DropDownList ID="DropDownList1" runat="server" 
						DataSourceID="sqlPais" DataTextField="pais" 
						DataValueField="pais" SelectedValue='<%# Bind("pais) %>'>
					</asp:DropDownList>
					<asp:SqlDataSource ID="sqlPais" runat="server" 
						ConnectionString="<%$ ConnectionStrings:ConnectionString%>" 
						SelectCommand="SELECT * FROM [paises]]">
					</asp:SqlDataSource>

Share this post


Link to post
Share on other sites

Estranho, tente utilizar dessa outra forma: http://www.macoratti.net/aspn_ddl.htm

 

Tente no máximo separar HTML do seu código de programação.

 

Abraços...

mas ai ele vai vir selecionado como eu quero?

eu ja tinha dado uma olhada no site do macoratti, mas n achei q se aplicava com o meu problema.

é muito estranho n dar certo....

Share this post


Link to post
Share on other sites

Só agora reparei que alimenta a propriedade SelectedValue tanto no HTML quanto no código VB. Retire essa propriedade do seu código HTML, não tem necessidade.

 

Abraços...

se eu tiro ele traz o combo com os paises mas a primeira opcao selecionada e n a correta

Share this post


Link to post
Share on other sites

Mas você deve definir qual é a que ficará selecioada la no seu código:

ddl_pais.SelectedValue = dados("pais").ToString

Abraços...

mesmo tirando do html e deixando somente na pagina aspx.vb, continua com o mesmo erro:

'ddl_pais' tem um SelectedValue que é inválido porque ele não existe na lista de itens.

Nome do parâmetro: value

 

pensei q era por causa do nome do campo por estar o mesmo nas duas tabelas, mas qdo altero o nome tbm da esse erro.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.