Hinzufügen einer Zeile in DataGridView mit C#

Abdul Mateen 16 Februar 2024
  1. DataGridView in C#
  2. Zeilen in DataGridView in C# hinzufügen
Hinzufügen einer Zeile in DataGridView mit C#

In diesem Artikel lernen wir DataGridView in C# kennen. Lassen Sie uns zunächst eine Vorstellung von DataGridView machen und warum wir Daten in der Tabelle speichern müssen, dh in Zeilen und Spalten.

Als Nächstes werden wir verschiedene Möglichkeiten zum Hinzufügen von Zeilen zum Raster besprechen.

In der Vergangenheit haben die meisten Entwickler ihre Daten in Dateien gespeichert. Wann immer sie es brauchten, mussten sie alle Dateien der Reihe nach durchsuchen, was zeitaufwändig war.

Die Tische wurden erfunden, um dieses Problem zu lösen.

In der Tabelle werden Daten übersichtlich in Zeilen und Spalten nacheinander gespeichert. Tabellen bieten eine schnelle und effiziente Lesbarkeit über Zeilen und Spalten hinweg, ohne zeitaufwändig zu sein.

Grid ist auch die Form der Tabelle in Form von Zellen, also Zeilen und Spalten.

DataGridView in C#

Visual Studio 2008 verfügt über das DataGridView-Steuerelement, das in Windows Forms-Steuerelementen verfügbar ist. Dieses Steuerelement hat im Vergleich zu früheren Versionen umfangreiche Funktionen zur Verwaltung von Daten hinzugefügt.

Neben der Stärke bietet dieses Steuerelement die Flexibilität, Daten im Zeilen-Spalten-Format anzuzeigen.

Wir können das Steuerelement DataGridView verwenden, um schreibgeschützte Ansichten für eine kleine Datenmenge anzuzeigen. Sie können es auch für große Datensätze verwenden, um bearbeitbare Ansichten anzuzeigen.

Neben kleinen und großen Datensätzen können Sie sich mit diesem Control auch Masterdetails anzeigen lassen.

Das Control DataGridView steht für eine Vielzahl unterschiedlicher Datenquellen sowohl zur Ansicht als auch zur Bearbeitung zur Verfügung. Dieses Steuerelement bietet eine einfache und intuitive Möglichkeit, Daten an dieses Steuerelement zu binden.

Um mehrere Tabellen in einer Datenquelle zu binden, legen Sie sie als Zeichenfolge in der Eigenschaft von DataMember fest.

Das Steuerelement DataGridView bindet an jede Klasseninstanz, die die folgenden Schnittstellen implementiert:

  1. Die IList-Schnittstelle enthält auch eindimensionale Arrays.
  2. IListSource-Schnittstelle. Die Beispiele sind die Klassen DataSet und DataTable.
  3. Schnittstelle IBindingList, wie Klasse BindingList<(Of <(T>)>).
  4. Schnittstelle IBindingListView, wie die Klasse BindingSource.

Das Control DataGridView kann Daten an die öffentlichen Attribute der durch die obigen Schnittstellen beschriebenen Objekte binden. Das Control DataGridView hängt hauptsächlich eine BindingSource an, während die BindingSource an eine andere Referenzdatenquelle oder an das Business-Objekt gebunden ist.

Dieses Steuerelement unterstützt auch die Datenbindung an die Eigenschaftensammlung, die von einer ICustomTypeDescriptor-Schnittstelle zurückgegeben wird.

Der DataGridView in C# zeigt Daten in einem anpassbaren Grid an, d.h. in tabellarischer Form mit Windows Form. Es ist Teil des Namensraums System.Windows.Forms.

Die Syntax zur Verwendung eines Rasters ist unten angegeben.

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

Sie können die Zellen, Zeilen, Spalten und Rahmen über die Klasse DataGridView anpassen. Das Control DataGridView zeigt Daten mit oder ohne Datenquelle an.

Wenn Sie noch eine Datenquelle bereitstellen müssen, können Sie Zeilen und Spalten in DataGridView durch Zeilen- und Spalteneigenschaften hinzufügen. Sie können auch auf Zeilen- und Spaltensammlungen zugreifen, indem Sie die Objekte DataGridView rows und cols verwenden.

In diesem Artikel konzentrieren wir uns hauptsächlich auf das Hinzufügen von Zeilen in der Datenrasteransicht, also lassen Sie uns einige Methoden finden.

Zeilen in DataGridView in C# hinzufügen

Wir werden mehrere Möglichkeiten zum Hinzufügen von Zeilen in DataGridView besprechen. Wir werden Codierungsdetails mit jeder Methode präsentieren.

Manuelles Hinzufügen von Zeilen

Der einfachste Weg, Zeilen in DataGridView hinzuzufügen, kann manuell mit der Methode Rows.Add() in der Datengitteransicht erfolgen. Im folgenden Beispiel wird in der Klasse MyForm.cs die Schaltflächenfunktion add_Data geschrieben, die Zeilen anzeigt.

Sie können ein Formulardesign in WPF FormDesign erstellen, indem Sie ein Raster und eine Schaltfläche verwenden, die das Raster anzeigt.

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);
    }
  }
}

Sie können auch auf die Spalten des Controls DataGridView über die Collection Columns und auf die Zeilen des Controls DataGridView über die Collection Rows zugreifen.

Wenn DataGridView an keine Datentabelle oder keinen Datensatz gebunden ist, können wir mit Hilfe des folgenden Codes neue Zeilen hinzufügen.

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

Dynamisches Hinzufügen einer neuen Zeile

Das folgende Beispiel zeigt, wie Sie im Windows-Anwendungsformular Form1 dynamisch Spalten und Zeilen im Grid hinzufügen können. Fügen Sie nach dem Erstellen des Projekts die dataGridView aus der Toolbox zu Ihrem Form1.cs[Design] hinzu und klicken Sie auf das Dock für die Containeroption aus der oberen rechten Schaltfläche des Rasters.

Gehen Sie nun zur Datei Form1.cs und nehmen Sie einige Änderungen am Formular vor. Fügen Sie zunächst die Namespaces wie unten angegeben hinzu.

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();
    }
  }
}

Im obigen Code können Sie sehen, dass Sie die Formularkomponente initialisieren und dann eine Form1_Load_1-Funktion erstellen, um Objekte und Ereignisse zu verarbeiten, die im Raster aufgetreten sind, und updateGrid() übergeben, wo Spalten und Zeilen hinzugefügt werden. Zeilen im Raster wurden dem Objekt ArrayList hinzugefügt, da es Objekte in der Gruppe speichern und bearbeiten kann.

Die Ausgabe des obigen Codes ist unten angegeben.

Zeile dynamisch hinzufügen

Hinzufügen von Zeilen im Raster durch die Datentabelle

In C# WinForm gibt es mehrere Möglichkeiten, Daten zum Raster hinzuzufügen. Einfach ausgedrückt kann die Datentabelle als ein Objekt definiert werden, das hauptsächlich in Datenbanken verwendet wird.

Es ist wie eine Datenbanktabelle mit Zeilen und Spalten. Wenn Sie mehr über die Datentabelle lesen möchten, können Sie den Artikel von Microsoft besuchen.

Im folgenden Beispiel können Sie sehen, dass wir zuerst das Datentabellenobjekt erstellt und mithilfe der integrierten Eigenschaften der Datentabelle Spalten und Zeilen im Raster hinzugefügt haben. Die Datenquelle ist auch die Eigenschaft der Datentabelle, die hauptsächlich verwendet wird, um die Daten für die DataGridView zu erhalten oder einzustellen.

Wenn Add_Row gedrückt wird, nachdem Daten in Textfelder eingetragen wurden, füllt die Datenquelle die Daten in das Raster ein.

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;
    }
  }
}

Die Ausgabe des obigen Codes ist:

fullgrid

Hinzufügen von Zeilen durch die Clone-Methode

In C# können Sie mit der clone-Methode Zeilen im Grid hinzufügen. Klonen bedeutet, die Daten von einer DataGridView in eine andere zu kopieren, um Zeilen und Spalten in einem Raster hinzuzufügen.

Obwohl sein Hauptzweck darin besteht, die Daten von einem Raster in ein anderes zu kopieren, können Sie Zeilen hinzufügen. Zum Beispiel:

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

Der obige Code stellt den einzeiligen Wert dar, der dem Raster hinzugefügt werden soll. Sie können jedoch auch eine Zeilenvorlage erstellen, da diese eine bessere Anordnung der Zeilen in einer Zelle bietet.

Zum Beispiel:

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

Obwohl es verschiedene Methoden zum dynamischen Hinzufügen von Zeilen in der Datenrasteransicht gibt, sind hier einige Beispiele:

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();
    }
  }
}

Wir haben nur den obigen Code für dieses Beispiel verwendet, da er leicht zu verstehen ist. In DataGridView wird die Eigenschaft clone verwendet, um die Zeilen und ihre Eigenschaften zu kopieren und die Zeilenkopie mit der Originalzeile zu füllen.

Im obigen Code haben wir die Methode clone verwendet, um die Zeilen zu kopieren. Um mehr über die clone-Methode zu erfahren, können Sie diese Seite besuchen.

Die Ausgabe des obigen Codes ist:

Klon

Sie können diese Seite besuchen, um mehr über das Hinzufügen von Zeilen in der Datenrasteransicht zu erfahren. Wenn Sie immer noch Unklarheiten beim Hinzufügen von Zeilen im Raster haben, können Sie auch diesen Artikel lesen.

Wir haben DataGridView ausführlich besprochen. Wir haben mehrere Möglichkeiten besprochen, Daten an DataGridView zu binden.

Wir hoffen, dass Sie eine gute Vorstellung von der Datenrasteransicht und ihren Funktionen haben und dass Sie mit dem Hinzufügen von Zeilen durch verschiedene Rastermethoden und dem Festlegen ihrer Eigenschaften vertraut sind.