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

Se puede pasar los datos de un Datatable a un Array?

Estas en el tema de Se puede pasar los datos de un Datatable a un Array? en el foro de .NET en Foros del Web. Hola, se que se pueden pasar los datos de un DataTable a un array. La pregunta concreta es si se puede pasar los datos con ...
  #1 (permalink)  
Antiguo 22/10/2012, 10:20
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años
Puntos: 2
Se puede pasar los datos de un Datatable a un Array?

Hola, se que se pueden pasar los datos de un DataTable a un array. La pregunta concreta es si se puede pasar los datos con todo y los nombres de las columnas???

Por ejemplo, cuando un GridView lee un DataTable te muestra los datos con todo y sus nombre de columnas, es decir toda la estructura integra de la tabla.

Yo quiero hacer lo mismo, quiero leer un array o ArrayList desde un Gridview.
Primero tengo un Datatable y este Datatable lo quiero pasar al ArrayList o Array para ser leido despues por un grid.
Es posible? Me podrian orientar como?
  #2 (permalink)  
Antiguo 22/10/2012, 12:23
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 8 meses
Puntos: 61
Respuesta: Se puede pasar los datos de un Datatable a un Array?

Lo que podes hacer es pasar el datatable a una lista tipo clase.
te creas una clase con los capos de tu tabla.
Código c#:
Ver original
  1. public class Usuario
  2. {
  3.      public int Id { get; set; }
  4.      public string Nombre { get; set; }
  5. }

Entonces arias.
Código c#:
Ver original
  1. List<Usuario> usuario = new List<Usuario>();
  2. foreach (DataRow dr in dt.Rows) //dt es el nombre del datatable
  3.  {
  4.                Usuario usu = new Usuario();
  5.                usu.Id = Convert.ToInt32(reader["Id"]);
  6.                usu.Id = Convert.ToString(reader["Nombre"]);
  7.                usuario.Add(usu);
  8. }

Eso seria todo saludos.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #3 (permalink)  
Antiguo 22/10/2012, 15:42
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años
Puntos: 2
Respuesta: Se puede pasar los datos de un Datatable a un Array?

Primero q nada gracias por contestar, ahora bien. Lo intente de la forma que me dijiste:


Clase usuario:
Código C#:
Ver original
  1. /// <summary>
  2. /// Descripción breve de Usuario
  3. /// </summary>
  4. public class Usuario
  5. {
  6.     public string Usr { get; set; }
  7.     public string Password { get; set; }
  8. }
y en C#:

Código C#:
Ver original
  1. public partial class _Default : System.Web.UI.Page
  2. {
  3.     string conexion = "SERVER=VALP-MAPLE01;UID=sa;PWD=messrv;DATABASE=Practica";
  4.     protected void Button1_Click(object sender, EventArgs e)
  5.     {
  6.         string query = "SELECT * FROM USUARIOS";
  7.         DataTable dt = new DataTable();
  8.         SqlDataAdapter da = new SqlDataAdapter(query, conexion);
  9.      
  10.         da.Fill(dt);
  11.  
  12.         List<Usuario> usuario = new List<Usuario>();
  13.         foreach (DataRow dr in dt.Rows)
  14.         {
  15.             Usuario usu = new Usuario();
  16.             usu.Usr=["Usuario"]
  17.             usu.Password=["Password"]
  18.             usuario.Add(usu);
  19.         }
  20.  
  21.     }
  22. }
Pero me da un buen de errores, no uso el reader pporque no existe segun mi visual stduio:


Uploaded with ImageShack.us
  #4 (permalink)  
Antiguo 22/10/2012, 16:44
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 8 meses
Puntos: 61
Respuesta: Se puede pasar los datos de un Datatable a un Array?

Perdon me equivoque en el codigo.
Seria asi.
Código c#:
Ver original
  1. List<Usuario> usuario = new List<Usuario>();
  2.     foreach (DataRow dr in dt.Rows) //dt es el nombre del datatable
  3.      {
  4.                    Usuario usu = new Usuario();
  5.                    usu.Id = Convert.ToInt32(dr["Id"]);
  6.                    usu.Id = Convert.ToString(dr["Nombre"]);
  7.                    usuario.Add(usu);
  8.     }

Tambien podrias hacerlo con linq.
Código c#:
Ver original
  1. usu = (from DataRow row in dt.AsEnumerable()
  2.           select new Usuario
  3.          {
  4.                Usr  = row.Field<string>("Usuario"),
  5.                Password =row.Field<string>("Password")
  6.  
  7.          }).ToList()

Si no hacerlo como lo hacen aqui.
Converting Your DataTable into List<T>Using Linq Query

Saludos.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Última edición por cristiantorres; 22/10/2012 a las 17:06
  #5 (permalink)  
Antiguo 22/10/2012, 19:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años
Puntos: 2
Respuesta: Se puede pasar los datos de un Datatable a un Array?

Muchas gracias amigo, me funciono a la perfeccion D:
Solo tengo una duda, cual es la diferencia de hacerlo con Linq de las 2 formas que pones? casi no se mucho de Linq por eso pregunto, que es mejor?

Última edición por th3r0rn; 22/10/2012 a las 20:40
  #6 (permalink)  
Antiguo 23/10/2012, 07:38
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: Se puede pasar los datos de un Datatable a un Array?

Hola th3r0rn, quisiera acotar algo, cuando publiques código o imágenes asegúrate de que estas no revelen tu seguridad... como por ejemplo tu cadena de conexión... nose si será un servidor público pero de todas maneras trata de tacharlos para que no se intente acceder y burlen la seguridad. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 23/10/2012, 08:25
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 17 años
Puntos: 2
Respuesta: Se puede pasar los datos de un Datatable a un Array?

Cita:
Iniciado por Aquaventus Ver Mensaje
Hola th3r0rn, quisiera acotar algo, cuando publiques código o imágenes asegúrate de que estas no revelen tu seguridad... como por ejemplo tu cadena de conexión... nose si será un servidor público pero de todas maneras trata de tacharlos para que no se intente acceder y burlen la seguridad. Saludos!.
Gracias por el consejo, pero es un servidor de Intranet, y la password ya la cambie gracias
  #8 (permalink)  
Antiguo 23/10/2012, 15:26
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 8 meses
Puntos: 61
Respuesta: Se puede pasar los datos de un Datatable a un Array?

Cita:
Iniciado por th3r0rn Ver Mensaje
Muchas gracias amigo, me funciono a la perfeccion D:
Solo tengo una duda, cual es la diferencia de hacerlo con Linq de las 2 formas que pones? casi no se mucho de Linq por eso pregunto, que es mejor?
La forma que yo te puse lees los datos del datatable y de una sola vez los almacenas en las propiedades de tu clase usando el metodo ToList() que te convierte los datos en un objeto del tipo List. Y en el ejemplo del link lo que hace es hacer esta conversión manual por eso se crea un metodo donde hace este proceso.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres

Etiquetas: datatable, tabla
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 18:52.