Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lívia Rodrigues

Como preencher um dropdown list com dados do BD MySQL ?

Recommended Posts

Galera, estou tentando popular um combo com os estados salvos em uma tabela do BD.

Estou usando o visual studio. Web form - VB.NET.

Tentei através da ferramenta já presente no dropdown "choose data source". Aparentemente fiz tudo direitinho.

Na hora de testar a query funcionou e tudo mais, mas quando eu dou finish, no dropdown aparece (databound)

e ao abrir a pagina atraves do navegador aparece o seguinte erro:

 

Server Error in '/Workbook' Application.

--------------------------------------------------------------------------------

 

Unable to find the requested .Net Framework Data Provider. It may not be installed.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.

 

Source Error:

 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

 

Stack Trace:

 

 

[ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.]

System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) +1420519

System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactory() +67

System.Web.UI.WebControls.SqlDataSource.GetDbProviderFactorySecure() +22

System.Web.UI.WebControls.SqlDataSource.CreateConnection(String connectionString) +11

System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +117

System.Web.UI.WebControls.ListControl.OnDataBinding(EventArgs e) +97

System.Web.UI.WebControls.ListControl.PerformSelect() +34

System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74

System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66

System.Web.UI.WebControls.ListControl.OnPreRender(EventArgs e) +29

System.Web.UI.Control.PreRenderRecursiveInternal() +103

System.Web.UI.Control.PreRenderRecursiveInternal() +175

System.Web.UI.Control.PreRenderRecursiveInternal() +175

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496

 

 

 

 

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

instalou o driver do MySQL?

terá q instancia-lo na string de conexão;

veja + detalhes aqui:

http://www.canaldev.com.br/topic/1759-tutorial-conectando-uma-pagina-aspnet-ao-mysql/

mas qqer coisa é bom você postar as versões dos programas

(pricipalmente do windows e do framework net)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao ferando a conexão em si eu consegui fazer, pois estou inserindo dados na tabela através de um outro formulario.

Quanto ao dropdown, desisti de tentar fazer atraves da ferramenta. Vou tentar fazer a mão.

Encontrei um codigo que funcionou para oracle, estou tentando adaptar para o meu caso. Mas sem sucesso. Pois conheço apenas o mais basico do basico.

 

Se puder da uma olhadinha no codigo que encontrei, Da pra adapta-lo ou preciso procurar por outro?

 

Dim connection As New OracleConnection("User ID=DCTADW;Data Source=HORPCTA;Password=DCTADW")

Dim command As New OracleCommand("SELECT CD_APLICACAO, CD_LOGIN, CD_INFORMACAO, DS_INFORMACAO_SAP, DS_INFORMACAO,
NM_RESPONSAVEL, DT_ATUALIZACAO FROM CTA_TIPO_ACESSO WHERE 1 = 1 AND CD_APLICACAO = 179 AND CD_LOGIN = 
upper(&usuario) ORDER BY CD_APLICACAO ASC", connection)

Dim ds As New DataSet

command.Parameters.Add("&usuario", SqlDbType.NVarChar, 20).Value = Right(HttpContext.Current.User.Identity.Name(),
(Len(HttpContext.Current.User.Identity.Name()) - InStr(1, HttpContext.Current.User.Identity.Name(), "\")))

Dim dr As OracleDataAdapter

command.CommandType = CommandType.Text

connection.Open()

dr = New OracleDataAdapter(command)

ds = New DataSet

dr.Fill(ds)

DropdownListExtend1.DataSource = ds

DropdownListExtend1.DataTextField = "DS_INFORMACAO"

DropdownListExtend1.DataBind()

connection.Close()

 

 

Obrigada.

 

PS. .NET framework 4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Livia, preliminarmente:

 

-

Unable to find the requested .Net Framework Data Provider. It may not be installed.

essa mensagem de erro provavelmente é pq você não instanciou corretamente o "provider",

ao menos nesta pg, ok? + abaixo t dou uma dica d como pode ser feito;

 

- meu framework é 3.5 SP 1,

então por isso prefiro passar a lógica em vez de trabalhar direto no código, mas vamos a 1 passo a passo:

 

1. no web.config, adiciono a seguinte conexão:

<add name="testemy" connectionString="Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mural;uid=root;pwd=XXX;" providerName="System.Data.Odbc"/>

 

(o nome você escolhe - atenção ao "provider")

 

2. código d 1 pg (VB.net) cuja dropdown exibe os autores de uma tabela de noticias

(o banco se chama "mural" e a tabela "tbnoticias", sem aspas);

 

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="teste-dropdown.aspx.vb" Inherits="teste_dropdown" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
   <title></title>
</head>
<body>
   <form id="form1" runat="server">
    <asp:DropDownList ID="DropDownList1" runat="server" 
       DataSourceID="SqlDataSource1" DataTextField="autor" DataValueField="autor">
   </asp:DropDownList>
   <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
       ConnectionString="<%$ ConnectionStrings:testemy %>" 
       ProviderName="<%$ ConnectionStrings:testemy.ProviderName %>" 
       SelectCommand="select autor from mural.tbnoticias"></asp:SqlDataSource>
   </form>
</body>
</html>

3. a code-behind:

Partial Class teste_dropdown
   Inherits System.Web.UI.Page

End Class

obs:

- onde esta XXX, substitua pela senha (claro);

- atenção à sql: select campo from nome-do-banco.nome-da-tabela.

 

ressalva: não é obrigatório o uso desse controle (dropdown);

tb é possivel usar um "select" comum HTML

é só referenciar corretamente;

veja alguns exemplos práticos aqui:

 

http://www.canaldev.com.br/topic/1944-tutorial-pesquisa-de-aniversariantes-com-aspnet-e-mysql/

http://forum.wmonline.com.br/topic/225444-exibicao-dinamica-com-o-sharepoint-designer-2007/

 

1 curso básico bem interessante sobre asp.net:

http://www.linhadecodigo.com.br/espcursoaspnet35.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.