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

DataList and DataSet !!!!!

Estas en el tema de DataList and DataSet !!!!! en el foro de .NET en Foros del Web. Hola a todos... Alguien me puede ayudar dándome un breve ejemplo y claro de cómo puedo llenar un DataList con ciertos datos obtenidos de una ...
  #1 (permalink)  
Antiguo 13/10/2003, 11:21
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Exclamación DataList and DataSet !!!!!

Hola a todos...

Alguien me puede ayudar dándome un breve ejemplo y claro de cómo puedo llenar un DataList con ciertos datos obtenidos de una DB? De tal forma que al seleccionar uno, se desplieguen todos los datos de ese registro en un formulario.

Mi problema es que no puedo obtener los datos para que se desplieguen en el DataList!

También, otro problema que tengo es que no puedo conectarme a una BD en Access, ubicada en el mismo servidor. Saben cómo puedo hacer para lograr eso? Necesito un ODBC?

SaludoS!!!
  #2 (permalink)  
Antiguo 13/10/2003, 14:31
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
es que no puedo conectarme a una BD en Access, ubicada en el mismo servidor. Saben cómo puedo hacer para lograr eso
Necestiar hacerlo mediante el OleDb.. te mando un ejemplo llenando un datalist y usando un dataset

Cita:
Dim str As String = "select * from tu_tabla"
Dim oConn As New System.Data.OleDb.OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data source=c:\tu_base.mdb;")
Dim dAdap As New System.Data.OleDb.OleDbDataAdapter (str, oConn)

Dim ds As New DataSet
dAdap.Fill(ds)

DataList1.DataSource = ds
DataList1.DataBind()
Después en tu datalist en modo html pondrías algo como esto:

Cita:
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<%# Container.DataItem("nombre_campo") %>
</ItemTemplate>
</asp:DataList>
y listo... ya te traes desde Access los datos..

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

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 13/10/2003, 14:33
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Por cierto:

Cita:
Necesito un ODBC?
Para éste caso con lo que te mandé es suficiente para conectarte.
  #4 (permalink)  
Antiguo 14/10/2003, 14:57
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola... estoy de vuelta aki porke no he podido ver los registros de mi base... no sé porké... no me marca error ni nada, pero no me los despliega... Ya puse el codigo que me mencionaste, RootK pero nada...

gracias por su ayuda.
  #5 (permalink)  
Antiguo 14/10/2003, 16:55
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Que te parece si mejor pones el código que tienes para ver que es lo que estas haciendo porque lo te mande lo probe y no tuve problemas.

Saludos
  #6 (permalink)  
Antiguo 14/10/2003, 17:09
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Ok, gracias...

Mira, en mi archivo pru1.aspx.vb tengo el siguiente codigo:

Public Class WebForm1
Inherits System.Web.UI.Page
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Dim str As String = "select * from Curriculum"
Dim oConn As New System.Data.OleDb.OleDbConnection("Provider=Micros oft.Jet.OLEDB.4.0;Data source=c:\Inetpub\wwwroot\base\Prueba.mdb;")
Dim dAdap As New System.Data.OleDb.OleDbDataAdapter(Str, oConn)
Protected WithEvents DataList1 As System.Web.UI.WebControls.DataList

Dim ds As New DataSet()
#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here

dAdap.Fill(ds)

DataList1.DataSource = ds
DataList1.DataBind()
End Sub
End Class


y en el html tengo:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="pru1.aspx.vb" Inherits="WebApp.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:label id="Label1" style="Z-INDEX: 101; LEFT: 341px; POSITION: absolute; TOP: 23px" runat="server" ForeColor="Navy" Font-Size="Larger" Font-Names="Arial Black" Width="101px" Height="14px">CURRICULUM</asp:label>
<asp:DataList id="DataList1" style="Z-INDEX: 102; LEFT: 278px; POSITION: absolute; TOP: 121px" runat="server"></asp:DataList></form>
<asp:DataList id="DataList1"
runat="server"></asp:DataList><BR><ItemTemplate></ItemTemplate><BR><%#
Container.DataItem("nombre_campo")
%><BR></ItemTemplate><BR></asp:DataList>
</body>
</HTML>

Gracias por tu valiosisisisima ayuda!
  #7 (permalink)  
Antiguo 14/10/2003, 23:22
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
dAdap.Fill(ds)
En donde estás declarando tu DataSet..???(DS)

Cita:
><ItemTemplate></ItemTemplate><BR><%#
Container.DataItem("nombre_campo") %><BR></ItemTemplate>
Me imagino que tu campo no se llama "nombre_campo" o sí..?? recuerda que ahi iría el nombre del campo de tu BD.. por ejemplo... nombre, direccion, telefono.. etc...

Si tienes una tabla que se llama curriculum con campos como Nombre te quedaría:


Cita:
Dim str As String = "select * from Curriculum"
Dim oConn As New System.Data.OleDb.OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data source=c:\Inetpub\wwwroot\base\Prueba.mdb;")
Dim dAdap As New System.Data.OleDb.OleDbDataAdapter (str, oConn)

Dim ds As New DataSet
dAdap.Fill(ds)

DataList1.DataSource = ds
DataList1.DataBind()
y en tu datalist..
Cita:
><ItemTemplate></ItemTemplate><BR><%#
Container.DataItem("Nombre ") %><BR></ItemTemplate>
Saludos
  #8 (permalink)  
Antiguo 15/10/2003, 09:30
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Ya lo tengo todo bien declarado... eso creo, jejejeje... ahora me manda es siguiente error:

Compiler Error Message: BC30456: 'DataItem' is not a member of 'System.Web.UI.Control'

lo puedes checar en:
http://www.compite.org.mx/WebApp/pru1.apsx

Saludos y MIL GRACIAS!
  #9 (permalink)  
Antiguo 15/10/2003, 10:22
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola...

Segun las pruebas que he estado realizando y los libros que he consultado, parece ser que el DataItem no es una propiedad del DataList o no es ese su uso correcto.

Digo... no sé realmente. Es por los errores que me arroja la pag.

saludos!
  #10 (permalink)  
Antiguo 15/10/2003, 11:28
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola...

Mira, hice este pequeño programa con puro html (sin utilizar VS.NET). Según yo, está bien, pero cuando lo ejecuto, me devuelve un error(http://www.compite.org.mx/AspEjm/prubase.aspx). Esto me hace suponer que se pueda deber a un problema en mi servidor, pero no sé qué!

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim DS As DataSet
Dim MyConnection As OleDbConnection
Dim MyCommand As OleDbDataAdapter

MyConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data source=c:\Inetpub\wwwroot\base\Prueba.mdb;")
MyCommand = New OleDbAdapter("select * from Curriculum", MyConnection)

DS = New DataSet()
MyCommand.Fill (DS,"Curriculum")

MyRepeater.DataSource = DS.Tables("Curriculum").DefaultView
End Sub
</script>
</head>
<body>
<asp:repeater id="MyRepeater" runat="server">
<headertemplate>
<table width="100%" style="font: 8pt verdana">
<tr style="background-color:DFA894">
<th>ID</th>
<th>Nombre</th>
<th>Puesto</th>
</tr>
</headertemplate>
<itemtemplate>
<tr style="background-color:FFECD8">
<td><%#DataBinder.Eval(Container.DataItem, "id") %> </td>
<td><%#DataBinder.Eval(Container.DataItem, "nombre") %> </td>
<td><%#DataBinder.Eval(Container.DataItem, "puesto") %> </td>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
</body>
</html>

SaludoS!
  #11 (permalink)  
Antiguo 16/10/2003, 09:05
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
parece ser que el DataItem no es una propiedad del DataList
Hola.., claro que no hay problema en utilizar
Cita:
<%# Container.DataItem("tu_campo") %>
con un datalist, solo que hay que ponerlo dentro de un ItemTemplate...

Ahora el :
Cita:
<%#DataBinder.Eval(Container.DataItem, "id") %>
Tambien funciona pero por lo regular se utiliza para cuando deseas darle un formato en específico a tu campo.. por ejemplo a una fecha.

Y en cuanto a tu código, se ve todo bien.. pero dond está su DataBind..??

Ejemplo:

MyRepeater.DataSource = DS.Tables("Curriculum").DefaultView
MyRepeater.DataBind()


Saludos y espero que ya con esto quede solucionado tu problema.
  #12 (permalink)  
Antiguo 16/10/2003, 12:47
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola...

Gracias MIL!!!! Ya pude desplegar mis datos. Logre que jalara mis resultados desde un servidos SQL remoto.

Mi siguiente paso es agregar a la tabla donde despliego mis datos, un checkboxlist para que el usuario pueda seleccionar ese o esos registros y me despliegue un formulario completo de los registros referentes a ése, cuando esto ocurra, quiero marcar ese registro para que el usuario sepa de que ya fue consultado.

SALUDOS y en verdad agradezco tu ayuda!!!
  #13 (permalink)  
Antiguo 16/10/2003, 14:37
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
De nada friend.. me da gusto que haya servidor el code..

Saludos
  #14 (permalink)  
Antiguo 17/10/2003, 13:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola...

Una nueva molestía... Tengo una línea de comando que me devuelve un error.

MyCommand = New SqlDataAdapter("select * from Curriculum where areainteres = '" & area & "'", MyConnection)

El error hace referencia al "&"... area corresponde a un DropDownList que adquiere un valor; quiero filtrar mis registros de acuerdo al valor obtenido en esa variable.

Codigo:

Sub Display (Sender as Object, E as EventArgs)
Dim MyCommand As SqlDataAdapter
Dim myConnection As New SqlConnection ("server=Poseidon; uid=sa; pwd=; database=COTIZADOR")
Dim DS As New DataSet()

MyCommand = New SqlDataAdapter("select * from Curriculum where areainteres = '" & area & "'", MyConnection)
MyConnection.Open()
MyCommand.Fill(DS, "Curriculum")
MyRepeater.DataSource = DS.Tables("Curriculum").DefaultView
MyRepeater.DataBind()
End Sub

<asp:dropdownlist ID="area" runat="server" OnSelectedIndexChanged="Display">
<asp:listitem Value="Administración">Administración</asp:listitem>
<asp:listitem Value="Sistemas">Sistemas</asp:listitem>
<asp:listitem Value="Consultoría">Consultoría</asp:listitem>
</asp:dropdownlist>

obviamente ya tengo mi tabla donde se van a desplegar los datos.

Saludos y gracias por su ayuda!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  #15 (permalink)  
Antiguo 17/10/2003, 16:11
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Para accesar al valor de tu dropdown lo haces la siguiente forma.

MyCommand = New SqlDataAdapter("select * from Curriculum where areainteres = '" & area.SelectedItem.Value & "'", MyConnection)

o en su defecto si quieres accesar al texto sería

area.SelectedItem.Text

Suerte.. .
  #16 (permalink)  
Antiguo 17/10/2003, 17:04
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola, nuevamente...

Ya lo hice y ya no obtuve ningun error, ahora mi problema es que cuando selecciono el "area" no me despliega los datos :(

He aquí mi código:

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

<html>

<script language="VB" runat="server">
Sub Display (Src As Object, E As EventArgs)
Dim MyCommand As SqlDataAdapter
Dim myConnection As New SqlConnection ("server=Poseidon; uid=sa; pwd=; database=COTIZADOR")

MyCommand = New SqlDataAdapter("select * from Curriculum where areainteres = '" & area.SelectedItem.Value & "'", MyConnection)
MyConnection.Open()

Dim DS As New DataSet()
MyCommand.Fill(DS, "Curriculum")
MyRepeater.DataSource = DS.Tables("Curriculum").DefaultView

MyRepeater.DataBind()

End Sub
</script>

<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<form runat="server">
<asp:dropdownlist ID="area" OnSelectedIndexChanged="Display" runat="server">
<asp:listitem Value="Sistemas">Sistemas</asp:listitem>
<asp:listitem Value="Consultoría">Consultoría</asp:listitem>
<asp:listitem Value="Administración">Administración</asp:listitem>
</asp:dropdownlist>
<ASP:Repeater id="MyRepeater" runat="server">
<HeaderTemplate>

<table width="765" style="font: 8pt verdana">
<tr style="background-color:DFA894">
<th width="47">ID</th>
<th width="123">&Aacute;REA DE INTER&Eacute;S</th>
<th width="381">NOMBRE</th>
<th width="194">AÑOS</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:FFECD8">
<td><%# DataBinder.Eval(Container.DataItem, "id") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "areainteres") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "nombre") %></td>
<td><%# DataBinder.Eval(Container.DataItem, "anos1") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</ASP:Repeater>
</form>
</body>
</html>

Molto grazzie de antemano...
  #17 (permalink)  
Antiguo 17/10/2003, 18:50
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
<asp:dropdownlist ID="area" OnSelectedIndexChanged="Display" runat="server">
Ya activaste el AutopostBack en true. de tu dropdownlist.??

Por otro lado.. como en este ejemplo estas trabajando con datos desconectados (DataAdapter) no es necesario que tengas la siguiente línea:

Cita:
MyConnection.Open()
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




La zona horaria es GMT -6. Ahora son las 08:59.