¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET?

En este artículo voy a explicar cómo crear y llenar dinámicamente (mediante programación) un DataTable y posteriormente enlazarlo a un GridView para mostrar la información con ASP.NET.


 

En primer lugar tienes que crear un objeto DataTable y su esquema (estructura de tablas y columnas) se define mediante programación. Una vez que se definen las columnas, se añaden filas (registros) a la DataTable generado dinámicamente.

Una vez que el DataTable está lleno con los registros, se enlaza a un control GridView ASP.Net.

Código HTML

El código HTML se compone de un ASP.Net GridView con tres columnas. Estas columnas las debe tener el DataTable generado dinámicamente.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="DataTable_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
                runat="server" AutoGenerateColumns="false">
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="30" />
                    <asp:BoundField DataField="Nombre" HeaderText="Nombre" ItemStyle-Width="150" />
                    <asp:BoundField DataField="Ciudad" HeaderText="Ciudad" ItemStyle-Width="150" />
                </Columns>
            </asp:GridView>
        </div>
    </form>
</body>
</html>

Crear dinámicamente DataTable y enlazarlo al GridView en ASP.Net

En el evento donde se carga de página “Page_Load” hay crear una nueva instancia de DataTable. Entonces añadimos las tres columnas a la colección Columns DataTable utilizando el AddRange método de la DataTable.

El método AddRange es una buena manera de reemplazar la tradicional forma de añadir una columna a la vez mediante el método Add. En el método AddRange tenemos que pasar un array de objetos de tipo DataColumn.

Y tenemos que especificar el nombre y el tipo de datos es decir, el tipo de datos que tendrá la columna.

Una vez que el esquema está listo es decir, se definen todas las columnas, podemos añadir filas a DataTable dinámicamente y enlazarlo al control ASP.Net GridView.

Te pongo el código fuente en VB.NET y C#, para que escojas con el que más te acomodes

VB.NET

Imports System.Data
Partial Class DataTable_Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not Me.IsPostBack Then
            Dim dt As New DataTable()
            dt.Columns.AddRange(New DataColumn() {New DataColumn("Id", GetType(Integer)), _
                                                   New DataColumn("Nombre", GetType(String)), _
                                                   New DataColumn("Ciudad", GetType(String))})
            dt.Rows.Add(1, "Jonathan Orozco", "Monterrey")
            dt.Rows.Add(2, "Jesus Corona", "México")
            dt.Rows.Add(3, "Cirilo Zaucedo", "Tijuana")
            dt.Rows.Add(4, "Humberto Suazo", "Chile")
            GridView1.DataSource = dt
            GridView1.DataBind()
        End If
    End Sub
End Class

C#

using System.Data;
protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
                            new DataColumn("Name", typeof(string)),
                            new DataColumn("Country",typeof(string)) });
        dt.Rows.Add(1, "Jonathan Orozco", "Monterrey");
        dt.Rows.Add(2, "Jesus Corona", "México");
        dt.Rows.Add(3, "Cirilo Zaucedo", "Tijuana");
        dt.Rows.Add(4, "Humberto Suazo", "Chile");
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}
Artículos relacionados
36 Comentarios
  • lql Comentar
    Tuesday, July 1, 2014

    Muy bien. Sabes hacer esto en prolog?

  • Martin Comentar
    Wednesday, October 22, 2014

    Muy buen aporte. Gracias.

  • MAURICIO Comentar
    Tuesday, March 24, 2015

    Consulta, y ahora para almacenar todos esos datos en una TABLA siguiendo la estructura del ejercicio? ...ID, NOMBRE, CIUDAD, algo asi como un INSERT MASIVO

    • Estrada WebGroupComentar
      Thursday, March 26, 2015

      Lo puedes hacer con un For al grid o a la tabla para insertar los valores, ya te has conectado a la base de datos?, que base de datos usas.

  • Yuliana Comentar
    Wednesday, June 17, 2015

    hola tengo una pequeña duda cuando agrego el codigo al page_load me marca que el nombre gridview1 no exiete en el contesto.

  • Estrada WebGroup Comentar
    Wednesday, June 17, 2015

    Mándame el html y el código para ver cual es el error. Saludos

  • Juan Comentar
    Monday, August 24, 2015

    Muy buen aporte, gracias

  • lolo Comentar
    Thursday, November 19, 2015

    oooooooo

  • Anonimo Comentar
    Thursday, November 19, 2015

    Hola, como hago para que me muestre el gridview?

    • Estrada webgroupComentar
      Thursday, November 19, 2015

      Con gridview.databind te debería mostrar los resultados del gridview

  • Anonimo Comentar
    Thursday, November 19, 2015

    No se que error tengo, pero ya le puse .databind y no me muestra el gridview

    • Estrada WebGroupComentar
      Thursday, November 19, 2015

      Mándame el código fuente a info@developerji.com para ver qué falta

  • Luisa Comentar
    Monday, November 23, 2015

    Hola, tengo un tab y dentro de una de las pestañas meto el gridview pero no me lo muestra, pero si lo pongo en otro formulario si lo muestra esto a que se debe?

  • imitazioni cartier orologi Comentar
    Wednesday, December 16, 2015

    i do not get how you can bracket i.e. suspend judgement on any aspect of a belief system when critics supply whatever judgement might come to their minds. you cannot very well write “Oh I am suspending judgement on that part”, when you are trying to be an apologetic for a certain criticism….maybe someone can enlighten me

  • rotonde de cartier replica Comentar
    Wednesday, December 16, 2015

    Yeah i removed the number because i was emailed some information that led me to believe the visible number could be tracked, even with the last 4 only.

  • ALEXANDER TORO Comentar
    Thursday, March 10, 2016

    buenas noches veo que es una herramienta poderosa no la conocía para manejar bases de datos informacion en bases de datos me podrian regalar material para aprender y difundirlo entre mis colegas y estudiantes y para mi en especial para progresar y actualizarme en bases de daros.gracias.

  • Duty Free Cigarettes Comentar
    Monday, April 4, 2016

    If you are going for best contents like myself, simply pay a visit this site ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? every day for the reason that it gives quality contents, thanks

  • Marlboro Reds Comentar
    Tuesday, April 5, 2016

    I always spent my half an hour to read this weblog articles or reviews ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? all the time along with a mug of coffee.

  • Marlboros Comentar
    Tuesday, April 5, 2016

    Ahaa, its good dialogue about this ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? at this place at this webpage, I have read all that, so now me also commenting at this place.

  • Cheap Cigarettes Online Comentar
    Wednesday, April 6, 2016

    Hi there I am from Australia, this time I am viewing this cooking related video at this ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? , I am actually delighted and learning more from it. Thanks for sharing.

  • Cigarettes Online Comentar
    Wednesday, April 6, 2016

    What's up to all, the YouTube video that ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? is posted at at this place has actually fastidious quality beside with nice audio quality

  • Cigerettes Comentar
    Wednesday, April 6, 2016

    If any one desires to be a successful blogger, after that he/she must study this post ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? , because it contains al} methods related to that.

  • Marlboro Cigarettes Price Comentar
    Thursday, April 7, 2016

    If you are going for best contents like me, simply pay a quick visit this website ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? all the time because it offers quality contents, thanks

  • Cigarettes Near Me Comentar
    Thursday, April 7, 2016

    If you wish for to increase your know-how ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? just keep visiting this website and be updated with the newest information posted here.

  • Carton Of Cigarettes Comentar
    Friday, April 8, 2016

    Remarkable video, actually a good ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? quality, this YouTube video touched me a lot in terms of features.

  • Cheap Cigarettes Free Shipping Comentar
    Friday, April 8, 2016

    If any one wishes to be a successful blogger, afterward he/she must read this paragraph ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? , because it includes al} techniques related to that.

  • Newport Cigarettes Comentar
    Saturday, April 9, 2016

    It my first go to see to this web site ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? , and I am actually amazed to see such a nice feature YouTube video posted at this point.

  • Malbro Comentar
    Saturday, April 9, 2016

    For my reading reasons, I at all times used to get the video lectures from YouTube, for the reason that it is trouble-free to fan-out from there ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? .

  • Cheap Marlboro Cigarettes Comentar
    Saturday, April 9, 2016

    Its extremely good YouTube video in terms of features, genuinely good, its quality is really appreciable ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? .

  • Cigarette Tobacco For Sale Comentar
    Sunday, April 10, 2016

    Your way of explaining the whole thing in this article ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? is truly good, every one can easily understand it, Thanks a lot.

  • Cigarette Shop Comentar
    Sunday, April 10, 2016

    Hi everybody, here every person is sharing these experience, therefore it pleasant to read this blog ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? , and I used to pay a quick visit this blog every day.

  • Cigarettes For Sale Comentar
    Monday, April 11, 2016

    Because the admin of this web site is working, no hesitation very rapidly it will be renowned ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? , due to its quality contents.

  • Duty Free Cigarettes Comentar
    Monday, April 11, 2016

    Hi, okay brother there are sure several blogging websites ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? , except I recommend you to use Google free of charge blogging services.

  • Marlboro Price Comentar
    Tuesday, April 12, 2016

    This paragraph ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? presents clear idea in favor of the new viewers of blogging, that actually how to do running a blog.

  • Duty Free Cigarettes Comentar
    Tuesday, April 12, 2016

    I pay a visit every day a few sites and blogs to read articles, but this website provides feature based articles ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? .

  • Cigarettes Marlboro Comentar
    Tuesday, April 12, 2016

    Its not my first time to visit this site, i am visiting this web site dailly and obtain pleasant data ¿Cómo crear y llenar dinámicamente un DataTable con ASP.NET? from here everyday.

  • yosbel Comentar
    Friday, June 3, 2016

    Hola necesito hacer eso mismo, pero en cada columna, en vez de ir texto, van tablas, texbox y cosas asi, es decir necesito poner codigo html en el valor de cada Row, como puedo lograr esto? Gracias

  • Victoria Comentar
    Wednesday, July 6, 2016

    Mil gracias, este ejemplo me sirvió muchísimo para generar la tabla que necesitaba, sin embargo... ¿hay modo de generar esta tabla mediante consultas a una base de datos en access?

  • porn movie Comentar
    Friday, July 15, 2016

    Thanks for your article. What I want to comment on is that when evaluating a good on-line electronics go shopping, look for a website with full information on key elements such as the personal privacy statement, security details, payment guidelines, along with terms plus policies. Constantly take time to read the help and FAQ sections to get a greater idea of how the shop works, what they are able to do for you, and how you can use the features.

Enviame un comentario