Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Ayuda con este error!!!!! Please (http://www.forosdelweb.com/f29/ayuda-con-este-error-please-260435/)

univercity 09/01/2005 19:26

Ayuda con este error!!!!! Please
 
Este error me genera...

Compiler Error Message: BC30002: Type 'SqlDataReader' is not defined.
Source Error:
Line 20: MyConnection.Open()
Line 21:
Line 22: Dim dr As SqlDataReader = MyCommand.ExecuteReader()
Line 23:
Line 24: MyDataGrid.DataSource = dr

-----------------------------------------------------------------
Y este es el codigo que estoy utilizando...


Sub Page_Load(Sender As Object, E As EventArgs)
Dim strConexion As String
Dim DS As DataSet
Dim MyConnection As OleDbConnection
Dim MyCommand As OleDbDataAdapter
strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../bdwine/clientes.mdb")
MyConnection = New OleDbConnection(strConexion)
MyCommand = New OleDbDataAdapter("select top 1 * from tabla1 ", MyConnection)

MyConnection.Open()

Dim dr As SqlDataReader = MyCommand.ExecuteReader()

MyDataGrid.DataSource = dr
MyDataGrid.DataBind()

MyConnection.Close()

End Sub


hace rato que estoy parado ahi, por favor alguien que me tienda una mano...

ORendon 10/01/2005 01:47

Tengo varias dudas con respecto a tu codigo
En primera instancia porque has definido el DataReader derivado de la clase sqlClient y no de la clase Oledb ¿?
Y segundo, no me gusta para nada tu command, que no deberia ser un OledCommand ¿?
Revisa esto para que se ejecute efectivamente el executeReader(), y luego me cuentas.

Ay te ves :adios:

univercity 10/01/2005 04:28

ahora me dice esto...

Compiler Error Message: BC30456: 'ExecuteReader' is not a member of 'System.Data.OleDb.OleDbDataAdapter'.

Source Error:



Line 20: MyConnection.Open()
Line 21:
Line 22: Dim dr As OleDbDataReader = MyOledbCommand.ExecuteReader()
Line 23:
Line 24: MyDataGrid.DataSource = dr

Jose_minglein 10/01/2005 06:38

No estoy seguro pero creo que es porque tu OleDbDataReader no lo as definido como un objeto. Prueba esto:

dim dr as OleDbDataReader = new OleDbDataReader()
dr = MyCommand.ExecuteReader()

o directamente

MyDataGrid.DataSource = MyCommand.ExecuteReader()

xknown 10/01/2005 07:06

Hola, por el error supongo que no estás utilizando codebehind, prueba agregando en la parte superior de tu página:

Código HTML:

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

Acerca de lo que dijo Jose_minglein:
Código:

dim dr as OleDbDataReader = new OleDbDataReader()
No se puede hacer eso ya que los DataReader's (SQL u OleDb) son interfaces y estas no pueden ser creadas directamente a partir de New.

Saludos

univercity 10/01/2005 14:19

si los codebehind, estan puestos...

<%@ Import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>


ahora el codigo compelto quedo ahroa así...

<%@ Import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<html>
<head>


</head>

<script language="VB" runat="server">

Sub Page_Load(Sender As Object, E As EventArgs)
Dim strConexion As String
Dim DS As DataSet
Dim MyConnection As OleDbConnection
Dim MyOledbCommand As OleDbDataAdapter
strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../bdwine/clientes.mdb")
MyConnection = New OleDbConnection(strConexion)
MyOledbCommand = New OleDbDataAdapter("select top 1 * from tabla1 ", MyConnection)

MyConnection.Open()
dim dr as OleDbDataReader = new OleDbDataReader()
dr = MyCommand.ExecuteReader()


'Dim dr As OleDbDataReader = MyOledbCommand.ExecuteReader()

MyDataGrid.DataSource = dr
MyDataGrid.DataBind()

MyConnection.Close()

End Sub

</script>


y me genera este error...


Compiler Error Message: BC30390: 'System.Data.OleDb.OleDbDataReader.Private Sub New(connection As System.Data.OleDb.OleDbConnection, command As System.Data.OleDb.OleDbCommand, depth As Integer, chapter As System.IntPtr)' is not accessible in this context because it is 'Private'.

Source Error:



Line 19:
Line 20: MyConnection.Open()
Line 21: dim dr as OleDbDataReader = new OleDbDataReader()
Line 22: dr = MyCommand.ExecuteReader()
Line 23:

error en linea 21

xknown 10/01/2005 14:44

El codebehind significa que separas el código (vb o cs) de la presentación(pagina.aspx), me interpretaste mal. El ejemplo que muestras no es codebehind, es al estilo de las páginas asp.

Volviendo al tema anterior, si tomaste atención al mensaje que envié diciendo que: "los DataReader's (SQL u OleDb) son interfaces y estas no pueden ser creadas directamente a partir de New"

Lo siguiente está mal
Cita:

Iniciado por univercity
dim dr as OleDbDataReader = new OleDbDataReader()

debería ser:
Código:

dim dr as OleDbDataReader


Intenta con los siguientes códigos:

Código:

<%@ Page Language="VB" %>
 <%@ Import Namespace="System.Data" %>
 <%@ import Namespace="System.Data.OleDb" %>
 <html>
 <head>
 <script language="VB" runat="server">
 Sub Page_Load(Sender As Object, E As EventArgs)
                Dim strConexion As String
        Dim DS As DataSet
        Dim MyOledbDA As OleDbDataAdapter
        strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../bdwine/clientes.mdb")
        MyOledbDA = New OleDbDataAdapter("select top 1 * from tabla1 ", strConexion)
 
        MyOledbDA.Fill(DS,"tabla1")
 
        MyDataGrid.DataSource = DS
        MyDataGrid.DataBind()
 End Sub
 
 </script>
 </head>
 ...

o
Código:

<%@ Page Language="VB" %>
 <%@ Import Namespace="System.Data" %>
 <%@ import Namespace="System.Data.OleDb" %>
 <html>
 <head>
 <script language="VB" runat="server">
 Sub Page_Load(Sender As Object, E As EventArgs)
                Dim strConexion As String
        Dim MyConnection As OleDbConnection
        Dim MyOledbCommand As OleDbCommand
        strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../bdwine/clientes.mdb")
        MyConnection = New OleDbConnection(strConexion)
        MyOledbCommand = New OleDbCommand("select top 1 * from tabla1 ", MyConnection)
 
        MyConnection.Open()
 
        dim dr as OleDbDataReader = MyOledbCommand.ExecuteReader(CommandBehavior.CloseConnection)
 
        MyDataGrid.DataSource = dr
        MyDataGrid.DataBind()
 End Sub
 
 </script>
 </head>
 ...


utility 13/01/2005 05:51

Ayuda con este error!!!!! Please
 
intentalo con esto

Dim strConexion As String
Dim MyConexion As OleDbConnection
Dim MyComando As OleDbDataAdapter
Dim MyDS As New DataSet
strConexion = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../bdwine/clientes.mdb")
MyConexion = New OleDbConnection(strConexion)
MyComando = New OleDbDataAdapter("Select * From tabla1", strConexion)
MyComando.Fill(MyDS, "tabla1")
MyDataGrid.DataSource = MyjDS
MyDataGrid.DataBind()
MyConexion.Close()

utility 13/01/2005 05:55

Ayuda con este error!!!!! Please
 
Elimina la j en la linea

MyDataGrid.DataSource = MyjDS

Perdona el error.

userdan 13/01/2005 06:31

Te recomiendo no usar DataSet en web a menos que sea por algun motivo de peso, son muy lentos y pesados. Puedes usar IDataReader y asi te da igual el proveedorde BBDD que tengas, te funcionara de todas formas.

Pon IDataReader en la ayuda (SDK, MSDN o lo que tengas) que viene un ejemplito, es muy facil.

Lo basico seria...

...
IDataReader dr = XXXCommand.ExecuteReader();
...

univercity 13/01/2005 06:41

Ok. voy a probar con los aportes que me han hecho les comento luego, gracias a todos...


La zona horaria es GMT -6. Ahora son las 04:46.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.