Agregar una fila en DataGridView usando C#

Abdul Mateen 16 febrero 2024
  1. DataGridView en C#
  2. Añadir filas en DataGridView en C#
Agregar una fila en DataGridView usando C#

En este artículo, aprenderemos sobre DataGridView en C#. Primero tomemos una idea sobre DataGridView y por qué necesitamos almacenar datos en la tabla, es decir, en filas y columnas.

A continuación, analizaremos varias formas de agregar filas a la cuadrícula.

En el pasado, la mayoría de los desarrolladores almacenaban sus datos en archivos. Siempre que lo necesitaban, tenían que buscar en todos los archivos secuencialmente, lo que consumía mucho tiempo.

Las tablas se inventaron para superar este problema.

En la tabla, los datos se almacenan en filas y columnas secuencialmente de manera bien organizada. Las tablas brindan una legibilidad rápida y eficiente en filas y columnas sin consumir mucho tiempo.

Grid es también la forma de la tabla en forma de celdas, es decir, filas y columnas.

DataGridView en C#

Visual Studio 2008 tiene el control DataGridView disponible en los controles de Windows Forms. Este control ha agregado un amplio poder para administrar datos en comparación con versiones anteriores.

Además de la fuerza, este control proporciona flexibilidad para mostrar datos en forma de filas y columnas.

Podemos usar el control DataGridView para mostrar vistas de solo lectura para una pequeña cantidad de datos. También puede usarlo para grandes conjuntos de datos para mostrar vistas editables.

Además de conjuntos de datos pequeños y grandes, también puede mostrar detalles maestros usando este control.

El control DataGridView está disponible para una variedad de diferentes fuentes de datos tanto para la vista como para la edición. Este control tiene una forma simple e intuitiva de vincular datos a este control.

Para vincular varias tablas en una fuente de datos, configúrelo como una cadena en la propiedad de DataMember.

El control DataGridView se vinculará a cualquier instancia de clase que implemente las siguientes interfaces:

  1. La interfaz IList también incluye matrices unidimensionales.
  2. Interfaz IListSource. Los ejemplos son las clases DataSet y DataTable.
  3. Interfaz IBindingList, como la clase BindingList<(Of <(T>)>).
  4. Interfaz IBindingListView, como la clase BindingSource.

El control DataGridView puede vincular datos a los atributos públicos de los objetos descritos por las interfaces anteriores. El control DataGridView adjunta principalmente un BindingSource, mientras que el BindingSource está vinculado a otra fuente de datos de referencia o con el objeto comercial.

Este control también admite el enlace de datos a la colección de propiedades devuelta por una interfaz ICustomTypeDescriptor.

El DataGridView en C# muestra datos en una cuadrícula personalizable, es decir, en forma tabular con Windows Form. Es parte del espacio de nombres System.Windows.Forms.

La sintaxis del uso de una cuadrícula se proporciona a continuación.

[System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
[System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Ask)]
public class DataGridView : System.Windows.Forms.Control, System.ComponentModel.ISupportInitialize

Puede personalizar las celdas, filas, columnas y bordes a través de la clase DataGridView. El control DataGridView muestra datos con o sin fuente de datos.

Si aún necesita proporcionar una fuente de datos, puede agregar filas y columnas en DataGridView por propiedades de filas y columnas. También puede acceder a las colecciones de filas y columnas usando los objetos DataGridView, rows y cols.

En este artículo, nuestro enfoque principal es agregar filas en la vista de cuadrícula de datos, así que busquemos algunos métodos.

Añadir filas en DataGridView en C#

Discutiremos varias formas de agregar filas en DataGridView. Presentaremos detalles de codificación con cada método.

Adición manual de filas

La forma más fácil de agregar filas en DataGridView se puede hacer manualmente usando el método Rows.Add() en la vista de cuadrícula de datos. En el siguiente ejemplo, en la clase MyForm.cs, se escribe la función del botón add_Data, que mostrará filas.

Puede crear un diseño de formulario en WPF FormDesign utilizando una cuadrícula y un botón que muestra la cuadrícula.

using System;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Manual_Addition_of_Rows_Datagrid {
  public partial class MyForm : FormDesign {
    public MyForm() {
      IntializeComponent();
    }
    private void add_Data(object sender, EventArgs e) {
      dataGridView1.ColumnCount = 3;
      dataGridView1.Columns[0].Name = "ID";
      dataGridView1.Columns[1].Name = "Course Name";
      dataGridView1.Columns[2].Name = "Marks";

      string[] row = new string[] { "1", "OOP", "75" };
      dataGridView1.Rows.Add(row);
      row = new string[] { "2", "DSA", "86" };
      dataGridView1.Rows.Add(row);
      row = new string[] { "3", "AOA", "67" };
      dataGridView1.Rows.Add(row);
    }
  }
}

También puede acceder a las columnas del control DataGridView usando la colección Columns ya las filas del control DataGridView usando la colección Rows.

Si DataGridView no está vinculado a ninguna tabla de datos o conjunto de datos, podemos agregar nuevas filas con la ayuda del siguiente código.

var index = dataGridView1.Rows.Add();
dataGridView1.Rows[index].Cells["Column1"].Value = "Column1 value";
dataGridView1.Rows[index].Cells["Column2"].Value = 9.5;

Agregar una nueva fila dinámicamente

El siguiente ejemplo muestra cómo puede agregar dinámicamente columnas y filas en la cuadrícula en el formulario de la aplicación de Windows Form1. Después de crear el proyecto, agregue el dataGridView de la caja de herramientas a su “Form1.cs [Diseño]” y haga clic en el muelle para la opción de contenedor desde el botón superior derecho de la cuadrícula.

Ahora ve al archivo Form1.cs y haz algunos cambios en el Formulario. Primero, agregue los espacios de nombres, como se indica a continuación.

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AddingRowsColumnsInGrid {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    public void updateGrid() {
      // Update the data grid view here dynamically
      // Add columns
      dataGridView1.ColumnCount = 4;
      dataGridView1.Columns[0].Name = "Bus Id";
      dataGridView1.Columns[1].Name = "Bus Name";
      dataGridView1.Columns[2].Name = "Bus Model";
      dataGridView1.Columns[3].Name = "Bus Color";

      // Now adding rows
      ArrayList arrRow = new ArrayList();
      arrRow.Add("1");
      arrRow.Add("School bus");
      arrRow.Add("2000");
      arrRow.Add("Yellow");
      dataGridView1.Rows.Add(arrRow.ToArray());

      arrRow = new ArrayList();
      arrRow.Add("2");
      arrRow.Add("Speedo bus");
      arrRow.Add("2014");
      arrRow.Add("Red");
      dataGridView1.Rows.Add(arrRow.ToArray());

      arrRow = new ArrayList();
      arrRow.Add("3");
      arrRow.Add("Metro bus");
      arrRow.Add("205");
      arrRow.Add("Orange");
      dataGridView1.Rows.Add(arrRow.ToArray());
    }
    private void Form1_Load_1(object sender, EventArgs e) {
      updateGrid();
    }
  }
}

En el código anterior, puede ver que inicializa el componente de formulario y luego crea una función Form1_Load_1 para manejar objetos y eventos que ocurrieron en la cuadrícula y pasar updateGrid() donde agregar columnas y filas. Se han agregado filas en la cuadrícula al objeto ArrayList, ya que puede almacenar objetos en el grupo y manipularlos.

La salida del código anterior se muestra a continuación.

Agregar fila dinámicamente

Agregar filas en la cuadrícula a través de la tabla de datos

En C# WinForm, existen varias formas de agregar datos a la cuadrícula. En pocas palabras, la tabla de datos se puede definir como un objeto que se utiliza principalmente en bases de datos.

Es como una tabla de base de datos que tiene filas y columnas. Si desea leer más sobre la tabla de datos, puede visitar el artículo de Microsoft.

En el siguiente ejemplo, puede ver que primero creamos el objeto de la tabla de datos y agregamos columnas y filas en la cuadrícula utilizando las propiedades integradas de la tabla de datos. La fuente de datos también es propiedad de la tabla de datos, utilizada principalmente para obtener o establecer los datos para el DataGridView.

Cuando se presiona Add_Row después de completar los datos en los cuadros de texto, la fuente de datos completará los datos en la cuadrícula.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SampleGridData {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    DataTable dt = new DataTable();
    private void Form1_Load(object sender, EventArgs e) {
      dt.Columns.Add("Emp Id", typeof(int));
      dt.Columns.Add("Ename", typeof(string));
      dt.Columns.Add("Company", typeof(string));
      dt.Columns.Add("Email", typeof(string));

      dt.Rows.Add(1, "Alexa", "Apple", "alexa123@apple.io");
      dt.Rows.Add(2, "Hugh Jack", "Microsoft", "hugh345@microsoft.com");
      dt.Rows.Add(3, "Jacob", "HP", "jacob678@hp.io");
      dt.Rows.Add(4, "Ariana", "Huawive", "arina86@huaweiv.com");

      dataGridView1.DataSource = dt;
    }
    private void button1_Click(object sender, EventArgs e) {
      dt.Rows.Add(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text);
      dataGridView1.DataSource = dt;
    }
  }
}

La salida del código anterior es:

red completa

Adición de filas a través del método Clonar

En C#, puede agregar filas en la cuadrícula utilizando el método clonar. Clonar significa copiar los datos de un DataGridView a otro para agregar filas y columnas en una cuadrícula.

Aunque su objetivo principal es copiar los datos de una cuadrícula a otra, puede agregar filas. Por ejemplo:

DataGridViewRow myRow = (DataGridViewRow)myGrid.Rows[0].Clone();
myRow.Cells[2].Value = "My first Grid";
myRow.Cells[4].Value = 23.5;
myGrid.Rows.Add(myRow);

El código anterior representa el valor de una fila que se agregará a la cuadrícula. Sin embargo, también puede crear una plantilla de filas, ya que proporciona mejores arreglos de filas en una celda.

Por ejemplo:

DataGridViewRow r1 = (DataGridViewRow)myGrid1.RowTemplate.Clone();
r1.CreateCells(myGrid1, "col1", "col2", "col3");
myGrid1.Rows.Add(row);

Aunque existen diferentes métodos para agregar filas en la vista de cuadrícula de datos dinámicamente, aquí hay algunos ejemplos:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AddingRowsColumnsInGrid {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    public void updateGrid() {
      dataGridView1.ColumnCount = 4;
      dataGridView1.Columns[0].Name = "Bus Id";
      dataGridView1.Columns[1].Name = "Bus Name";
      dataGridView1.Columns[2].Name = "Bus Model";
      dataGridView1.Columns[3].Name = "Bus Color";

      dataGridView1.AllowUserToAddRows = true;
      DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
      row.Cells[0].Value = "1";
      row.Cells[1].Value = "School bus";
      row.Cells[2].Value = "2000";
      row.Cells[3].Value = "Yellow";
      dataGridView1.Rows.Add(row);

      row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
      row.Cells[0].Value = "4";
      row.Cells[1].Value = "Speedo bus";
      row.Cells[2].Value = "2014";
      row.Cells[3].Value = "Red";
      dataGridView1.Rows.Add(row);

      row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
      row.Cells[0].Value = "3";
      row.Cells[1].Value = "Metro bus";
      row.Cells[2].Value = "2015";
      row.Cells[3].Value = "Orange";
      dataGridView1.Rows.Add(row);

      row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
      row.Cells[0].Value = "4";
      row.Cells[1].Value = "Daewoo bus";
      row.Cells[2].Value = "2021";
      row.Cells[3].Value = "Blue";
      dataGridView1.Rows.Add(row);
    }
    private void Form1_Load_1(object sender, EventArgs e) {
      updateGrid();
    }
  }
}

Acabamos de usar el código anterior para este ejemplo, ya que es fácil de entender. En DataGridView, la propiedad clonar se usa para copiar las filas y sus propiedades y completar la copia de la fila con la original.

En el código anterior, hemos utilizado el método clonar para copiar las filas. Para leer más sobre el método clonar, puedes visitar esta página.

La salida del código anterior es:

clon

Puede visitar esta página para obtener información sobre cómo agregar filas en la vista de cuadrícula de datos. Si todavía tiene ambigüedad al agregar filas en la cuadrícula, también puede leer este artículo.

Hemos discutido DataGridView en detalle. Hemos discutido múltiples formas de vincular datos a DataGridView.

Esperamos que tenga una buena idea sobre la vista de cuadrícula de datos y sus funcionalidades y que se sienta cómodo agregando filas a través de diferentes métodos de cuadrícula y configurando su propiedad.