Ir para conteúdo

Arquivado

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

asp.net

Problema com Conexão no ASP.net

Recommended Posts

Tenho o código abaixo

 

<%@ Control Language="VB" %>

<%@Import Namespace="System.data"%>

<%@Import Namespace="System.Data.OLEDB"%>

<script runat="server">

 

Dim str_nome as String

Dim Intcode as Integer

Dim str_senha as String

Dim Conexao as OLEDBConnection

Dim Dtreader as OLEDBDataReader

Dim comando as OLEDBCommand

Dim opcao as Integer

 

 

' Insert page code here

'

 

Sub Page_load(sender As Object, e as EventArgs)

lblogin.visible=true

lbsenha.visible=true

txtlogin.visible=true

txtsenha.visible=true

btlogar.visible=true

end sub

 

Sub Button1_Click(sender As Object, e As EventArgs)

 

lblogin.visible = false

lbsenha.visible = false

txtlogin.visible = false

txtsenha.visible = false

btlogar.visible = false

 

Dim StringConexao as String = "Provider=MySQLProv;Data Source=C:\Guilherme\Downloads\mysql-4.0.20d-win-noinstall\data\valeuboi;User Id=Telematic;Password=;"

 

Dim MySQL as String = "Select * from usuario where us_email= '"& txtlogin.text &"' and us_senha='"& txtsenha.text &"'"

 

Dim MinhaConexao as New OledbConnection(stringConexao)

Dim Comando as New OledbCommand(Mysql,Minhaconexao)

 

MinhaConexao.Open() 'Abrindo a conexão com o banco

 

Dtreader = Comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection) 'Executando a busca e fechando a conexão com a base de dados

 

If Not Dtreader.Read() then

lbtextnome.visible = true

lbnome.text = "Usuario/Senha inválidos"

Dtreader.close

Conexao.Close

else

lbnome.text = Dtreader("us_nome")

Session("usuario") = lbnome.text

Session("codigo") = dtReader("us_codigo")

dtreader.close

MinhaConexao.close

Response.Redirect("calendario.aspx")

end if

End Sub

 

</script>

<table style="WIDTH: 282px; HEIGHT: 71px" cellspacing="0" cellpadding="0">

<tbody>

<tr>

<td width="25%">

<asp:Label id="lblogin" runat="server" font-names="Verdana" font-size="10pt">Login</asp:Label></td>

<td>

<asp:TextBox id="txtlogin" runat="server" Width="199px"></asp:TextBox>

</td>

</tr>

<tr>

<td>

<asp:Label id="lbsenha" runat="server" font-names="Verdana" font-size="10pt">Senha</asp:Label></td>

<td>

<asp:TextBox id="txtsenha" runat="server" Width="90px"></asp:TextBox>

</td>

</tr>

<tr>

<td>

<asp:Button id="btlogar" onclick="Button1_click" runat="server" BorderWidth="1px" BorderStyle="Solid" BorderColor="DimGray" BackColor="WhiteSmoke" ForeColor="DimGray" Font-Size="10pt" Font-Names="Verdana" Text="logar"></asp:Button>

</td>

<td>

</td>

</tr>

<tr>

<td>

</td>

<td>

</td>

</tr>

<tr>

<td>

<asp:Label id="lbtextnome" runat="server" font-names="Verdana" font-size="10pt" visible="False">Nome:</asp:Label></td>

<td>

<asp:Label id="lbnome" runat="server" font-names="Verdana" font-size="10pt"></asp:Label></td>

</tr>

<tr>

<td>

</td>

<td>

</td>

</tr>

</tbody>

</table>

 

Que é um script para login do usuário, eu mando ele compilar tudo beleza, agora quando eu rodo e informo o nome do usuário e senha ele me retorna o seguinte erro.

 

Server Error in '/' Application.

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

 

The .Net Data OLE DB Provider(System.Data.OleDb) requires Microsoft Data Access Components(MDAC) version 2.6 or later. Version 2.53.6200.0 was found currently 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.InvalidOperationException: The .Net Data OLE DB Provider(System.Data.OleDb) requires Microsoft Data Access Components(MDAC) version 2.6 or later. Version 2.53.6200.0 was found currently installed.

 

Source Error:

 

The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

 

1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

 

<%@ Page Language="C#" Debug="true" %>

 

or:

 

2) Add the following section to the configuration file of your application:

 

<configuration>

<system.web>

<compilation debug="true"/>

</system.web>

</configuration>

 

Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

 

Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.

 

Stack Trace:

 

 

[invalidOperationException: The .Net Data OLE DB Provider(System.Data.OleDb) requires Microsoft Data Access Components(MDAC) version 2.6 or later. Version 2.53.6200.0 was found currently installed.]

System.Data.OleDb.OleDbConnection.CreateInstanceMDAC() +240

System.Data.OleDb.OleDbConnection.GetObjectPool() +154

System.Data.OleDb.OleDbConnection.CreateProvider(OleDbConnectionString constr) +11

System.Data.OleDb.OleDbConnection.Open() +203

ASP.controleusuario_ascx.Button1_Click(Object sender, EventArgs e) +241

System.Web.UI.WebControls.Button.OnClick(EventArgs e) +83

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBa

ckEvent(String eventArgument) +57

System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18

System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33

System.Web.UI.Page.ProcessRequestMain() +1277

 

 

 

 

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

Version Information: Microsoft .NET Framework Version:1.1.4322.573; ASP.NET Version:1.1.4322.573

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera antes o erro era porque eu naum tinha o MDAC instalado na versão correta mas agora ele tá me retornando o erro abaixo.

 

[OleDbException (0x80040154): No error information available: REGDB_E_CLASSNOTREG(0x80040154).]

 

[invalidOperationException: The 'Telematic' provider is not registered on the local machine.]

System.Data.OleDb.OleDbConnection.CreateProviderError(Int32 hr) +77

System.Data.OleDb.OleDbConnection.CreateProvider(OleDbConnectionString constr) +81

System.Data.OleDb.OleDbConnection.Open() +203

ASP.controleusuario_ascx.Button1_Click(Object sender, EventArgs e) +241

System.Web.UI.WebControls.Button.OnClick(EventArgs e) +83

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBa

ckEvent(String eventArgument) +57

System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18

System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33

System.Web.UI.Page.ProcessRequestMain() +1277

 

A linha onde estou determinando o meu banco é a seguinte.

 

Dim StringConexao as String = "Provider=Telematic;Data Source=C:\Guilherme\Downloads\mysql-4.0.20d-win-noinstall\data\valeuboi;User Id=Telematic;Password=;"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora Sim.

 

Galera eu consegui depois de muita luta e muitos cabelos arrancados e canetas quebradas, fazer a conexão com o MySQL, e decidi postar aqui para ajudar a galera toda que venha a ter a mesma dúvida que eu, pois bem vamos lá.

 

Instalações requeridas para a conexão.

 

1 - ODBC.NET Data Provider

 

2 - My SQL (Verificar a versão para seu sistema operacional)

 

3 - Odbc Driver - MySQL 3.51

 

Agora depois das instalções podemos ir para o código propriamente dito.

 

'Determinando que linguagem estou usando no meu script, no nosso caso o VB.net

<%@ Control Language="VB" %>

 

'Importanto os Namespaces para trabalhar com dados.

<%@ import Namespace="System.data" %>

<%@ import Namespace="System.Data.ODbc" %>

 

 

'Determinando que o script rode no servidor

<script runat="server">

 

'Declarando as variáveis com os respectivos tipos

 

Dim str_nome as String

Dim Intcode as Integer

Dim str_senha as String

Dim Conexao as ODBcConnection

Dim Dtreader as ODBcDataReader

Dim comando as ODBcCommand

 

 

'Iniciando o código propriamente dito

 

'Esta sub só vai acontecer quando o usuário clicar no botão do login, pode antes de executar o comando fazer uma verificação se os campos estão preenchidos e ainda verificar no caso do login se este foi preenchido com um email, mas isto vcs podem fazer

 

Sub Button1_Click(sender As Object, e As EventArgs)

 

'Determinando a minha string de conexão com o banco

Dim StringConexao as String = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=valeuboi; USER=root;PASSWORD=; OPTION=3;"

 

'Determinando a minha SQl de consulta no banco

Dim MySQL as String = "Select * from usuario where us_email= '"& txtlogin.text &"' and us_senha='"& txtsenha.text &"'"

 

'Declarando a variável minha conexao como sendo do tipo conexão para o banco

Dim MinhaConexao as New OdbcConnection(stringConexao)

 

'Declarando a variável comando como um comando do ODBC, passando como parametro a string de busca no banco e a conexão

Dim Comando as New OdbcCommand(Mysql,Minhaconexao)

 

'Abrindo minha conexão com o banco

MinhaConexao.Open()

 

'Executando a busca e fechando a conexão com a base de dados

Dtreader = Comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

 

'Verificando se a busca trouxe algum resultado

If Not Dtreader.Read() then

'A busca não trouxe nenhum resultado, ou seja o usuário informou valores que não existem no banco

lbtextnome.visible = true

lbnome.text = "Usuario/Senha inválidos"

Dtreader.close

Conexao.Close

else

'Aqui o resultado trouxe valores e neste caso estou passando para o Label lbnome o valor do nome do usuário e redirecionando para outra página, além de criar uma Session para controlar o acesso

 

lbnome.text = Dtreader("us_nome")

Session("usuario") = lbnome.text

Session("codigo") = dtReader("us_email")

dtreader.close

MinhaConexao.close

Response.Redirect("calendario.aspx")

end if

End Sub

 

</script>

 

'Aqui não preciso comentar pois é uma estrutura HTML comum, claro que deve-se tomar cuidado com as estruturas do form que no caso devem ser controle do ASP.NET

<table style="WIDTH: 282px; HEIGHT: 71px" cellspacing="0" cellpadding="0">

<tbody>

<tr>

<td width="25%">

<asp:Label id="lblogin" font-size="10pt" font-names="Verdana" runat="server">Login</asp:Label></td>

<td>

<asp:TextBox id="txtlogin" runat="server" Width="199px"></asp:TextBox>

</td>

</tr>

<tr>

<td>

<asp:Label id="lbsenha" font-size="10pt" font-names="Verdana" runat="server">Senha</asp:Label></td>

<td>

<asp:TextBox id="txtsenha" runat="server" Width="90px"></asp:TextBox>

</td>

</tr>

<tr>

<td>

<asp:Button id="btlogar" onclick="Button1_click" runat="server" Text="logar" Font-Names="Verdana" Font-Size="10pt" ForeColor="DimGray" BackColor="WhiteSmoke" BorderColor="DimGray" BorderStyle="Solid" BorderWidth="1px"></asp:Button>

</td>

<td>

</td>

</tr>

<tr>

<td>

</td>

<td>

</td>

</tr>

<tr>

<td>

<asp:Label id="lbtextnome" font-size="10pt" font-names="Verdana" runat="server" visible="False">Nome:</asp:Label></td>

<td>

<asp:Label id="lbnome" font-size="10pt" font-names="Verdana" runat="server"></asp:Label></td>

</tr>

<tr>

<td>

</td>

<td>

</td>

</tr>

</tbody>

</table>

</pre>

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.