Foros del Web » Programación para mayores de 30 ;) » .NET »

Conectar con una base de datos Access desde ASP.NET C#

Estas en el tema de Conectar con una base de datos Access desde ASP.NET C# en el foro de .NET en Foros del Web. Hola a tod@s. Hace muy poco que he empezado con ASP.NET y la verdad es que no me aclaro demasiado. Necesito conectar con una base ...
  #1 (permalink)  
Antiguo 18/03/2005, 05:29
 
Fecha de Ingreso: marzo-2005
Mensajes: 21
Antigüedad: 19 años, 2 meses
Puntos: 0
Conectar con una base de datos Access desde ASP.NET C#

Hola a tod@s.
Hace muy poco que he empezado con ASP.NET y la verdad es que no me aclaro demasiado.
Necesito conectar con una base de datos access para poder mostrar por pantalla los datos a continuación mediante un DataList.
He creado el origen de datos ODBC y he creado el fichero aspx, pero no consigo que me funcione.
El código que he utilizado es el siguiente:


<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">

void Page_Load (Object origen, EventArgs args) {
if (!Page.IsPostBack) {
/****** Conexión a base de datos */
// abriendo la conexión
connecta=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=c:\\Test\\numer6\\clientes.mdb");
// cargando el adapter con la instruccion sql
canal=new OleDbDataAdapter("select * from tClientes", connecta);
// cargando el dataset
tabla= new DataSet();
canal.Fill(tabla, "tClientes");
/* Fin conexión a base de datos ***/
listado.DataSource = datos.Tables["tClientes"].DefaultView;
listado.DataBind();
}
}

</script>
<html>
<head>
<title>Ejemplo numero 10 - uso del control Web DataList en una página ASP.NET</title>
</head>
<body>
<asp:DataList id="listado" runat="server" RepeatDirection="Vertical" RepeatLayout="Table" RepeatColumns="6" GridLines="Both">
<ItemTemplate>
<%# ((DataRowView)Container.DataItem)["Nombre"] %>&nbsp;
<%# ((DataRowView)Container.DataItem)["Apellido"] %>&nbsp;
</ItemTemplate>
</asp:DataList>
</body>
</html>


Alguna alma caritativa podrías decirme qué es lo que estoy haciendo mal??
La verdad es que no me aclaro demasiado con la escasa documentación que tengo.
Muchas gracias anticipadas a todos.
Saludos
Moloko

Última edición por Moloko1508; 18/03/2005 a las 05:39
  #2 (permalink)  
Antiguo 18/03/2005, 09:18
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Te recomiendo que lo hagas de está forma:

Cita:
<asp:DataList id="listado" runat="server" RepeatDirection="Vertical" RepeatLayout="Table" RepeatColumns="6" GridLines="Both">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"Nombre") %>&nbsp;
<%# DataBinder.Eval(Container.DataItem,"Apellido") %>&nbsp;
</ItemTemplate>
</asp:DataList>
Lo mejor de esa sintaxis es que es igual tanto para vb.net como c#

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 18/03/2005, 09:23
Avatar de Delek  
Fecha de Ingreso: marzo-2005
Ubicación: Madrid
Mensajes: 75
Antigüedad: 19 años, 2 meses
Puntos: 0
De entrada veo que te falta declarar la referencia de los objetos.
Prueba este código

/****** Conexión a base de datos */
// abriendo la conexión
OleDbConnection connecta=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=c:\\Test\\numer6\\clientes.mdb");
// cargando el adapter con la instruccion sql
OleDbDataAdapter canal=new OleDbDataAdapter("select * from tClientes", connecta);
// cargando el dataset
DataSet tabla= new DataSet();
canal.Fill(tabla, "tClientes");
/* Fin conexión a base de datos ***/
DataList listado = new DataList();
listado.DataSource = tabla.Tables["tClientes"].DefaultView;
listado.DataBind();

Al final donde pones "datos", no se que quiere decir eso, creo que se persigue rellenar el datasource con la vista de la tabla, por eso , lo he cambiado por la instancia que se ha creado de el dataset.
  #4 (permalink)  
Antiguo 18/03/2005, 09:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 21
Antigüedad: 19 años, 2 meses
Puntos: 0
Muchísimas gracias a los dos.
Efectivamente, el error que me da la compilar es: "The name 'connecta' does not exist in the class..."
Por lo tanto seguro que es por no haber declarado los objectos.
Voy a probarlo ahora mismo....
  #5 (permalink)  
Antiguo 18/03/2005, 12:42
 
Fecha de Ingreso: marzo-2005
Mensajes: 20
Antigüedad: 19 años, 2 meses
Puntos: 0
<%@ import Namespace="System.Data.SqlClient" %>

Si te vas a conectar a una base de datos Access mejor que importes esto:
System.Data.OleDb

El SqlClient es para SQLServer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:07.