zu Datagridview, wenn Zeile DataTable
Wie eine neue Zeile hinzuzufügen programmatisch
DataRow row = datatable1.NewRow();
row["column2"]="column2";
row["column6"]="column6";
datatable1.Rows.Add(row);
Wie wäre es DataGridView
hinzufügen ??
zu Datagridview, wenn Zeile DataTable
Wie eine neue Zeile hinzuzufügen programmatisch
DataRow row = datatable1.NewRow();
row["column2"]="column2";
row["column6"]="column6";
datatable1.Rows.Add(row);
Wie wäre es DataGridView
hinzufügen ??
Sie tun können:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
yourDataGridView.Rows.Add(row);
oder:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells["Column2"].Value = "XYZ";
row.Cells["Column6"].Value = 50.2;
yourDataGridView.Rows.Add(row);
Eine andere Art und Weise:
this.dataGridView1.Rows.Add("five", "six", "seven","eight");
this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");
Von: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rows.aspx
danke, wenn meine Datagridview keine Zeilen haben, wie kann ich Zeile hinzufügen? –
@DavidYeung gut in diesem Fall Antwort von MGA kann Ihnen helfen, was ist Ihre Datenquelle? ist es eine Datentabelle? Wenn dies der Fall ist, können Sie die Zeile zur Datentabelle hinzufügen und dann die Datenquelle aktualisieren – Habib
Sie können eine Spalte nicht wie folgt direkt über den Namen referenzieren: row.Cells ["Column2"]. Value = "XYZ"; ... Sie müssen zuerst den Index nachschlagen: row.Cells [yourDataGridView.Columns ["Column2"]. Index] .Value = "XYZ"; – Tizz
So:
dataGridView1.Columns[0].Name = "column2";
dataGridView1.Columns[1].Name = "column6";
string[] row1 = new string[] { "column2 value", "column6 value" };
dataGridView1.Rows.Add(row1);
Oder Sie brauchen dort Werte einzeln verwenden, um die propery .Rows()
einzustellen, wie folgt aus:
dataGridView1.Rows[1].Cells[0].Value = "cell value";
danke. wenn die Datagridview 30 Spalten haben, aber ich möchte nur den Wert zu Spalte2 und Spalte6 hinzufügen und den Rest null oder leer halten. Wie kann ich das machen?? –
@DavidYeung, Sicher kannst du: 'dataGridView1.Rows [1] .Cells [0] .Value =" cell value "'; –
dataGridView.Rows.Add (null, 2, null, null, null, 6); – MrFox
eine neue Zeile in einem DGV Hinzufügen ohne Zeilen mit Add() wirft Selection Ereignis, bevor Sie Daten eingeben (oder Binden Sie ein Objekt in der Tag-Eigenschaft).
erstellen Klon Reihe von RowTemplate sicherer imho ist:
//assuming that you created columns (via code or designer) in myDGV
DataGridViewRow row = (DataGridViewRow) myDGV.RowTemplate.Clone();
row.CreateCells(myDGV, "cell1", "cell2", "cell3");
myDGV.Rows.Add(row);
Clone() -Methode gab eine Zeile zurück, aber keine Zellen. row.Cells.Count ist 0. –
Markand: Rufen Sie DataGridViewRow.CreateCells auf, um Ihre Cells-Auflistung zu initialisieren. –
So:
var index = dgv.Rows.Add();
dgv.Rows[index].Cells["Column1"].Value = "Column1";
dgv.Rows[index].Cells["Column2"].Value = 5.6;
//....
Danke, das funktioniert wirklich gut, wenn Sie eine einfache einzelne Spalte DataGridView für einfache editierbare Listen von Text haben. –
Wenn das Gitter gegen eine DataSet/Tabelle gebunden ist es besser, zu verwenden, um eine Binding wie
var bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
grid.DataSource = bindingSource;
//Add data to dataTable and then call
bindingSource.ResetBindings(false)
Wenn Sie manipulieren müssen aß alles abgesehen von dem Zellwert Zeichenfolge wie einen Tag hinzufügen, versuchen Sie dies:
DataGridViewRow newRow = (DataGridViewRow)mappingDataGridView.RowTemplate.Clone();
newRow.CreateCells(mappingDataGridView);
newRow.Cells[0].Value = mapping.Key;
newRow.Cells[1].Value = ((BusinessObject)mapping.Value).Name;
newRow.Cells[1].Tag = mapping.Value;
mappingDataGridView.Rows.Add(newRow);
Ein Beispiel für Kopier Reihe von Datagridview und hat eine neue Zeile in der gleichen Datagridview: sagen
DataTable Dt = new DataTable();
Dt.Columns.Add("Column1");
Dt.Columns.Add("Column2");
DataRow dr = Dt.NewRow();
DataGridViewRow dgvR = (DataGridViewRow)dataGridView1.CurrentRow;
dr[0] = dgvR.Cells[0].Value;
dr[1] = dgvR.Cells[1].Value;
Dt.Rows.Add(dR);
dataGridView1.DataSource = Dt;
Lets Sie haben eine Datagridview, die nicht an ein Dataset gebunden ist und Sie programmgesteuert neue Zeilen füllen möchten ...
So geht's.
// Create a new row first as it will include the columns you've created at design-time.
int rowId = dataGridView1.Rows.Add();
// Grab the new row!
DataGridViewRow row = dataGridView1.Rows[rowId];
// Add the data
row.Cells["Column1"].Value = "Value1";
row.Cells["Column2"].Value = "Value2";
// And that's it! Quick and painless... :o)
+1: Dies ist die einzige Lösung, die tatsächlich verwendet die Spaltennamen wie von 'datagridview.Columns.Add (" columnname ")' definiert, benötigt keine DataTable und endet mit einem Lächeln – Roland
Betrachten Sie eine Windows-Anwendung und verwenden Sie Button Click Event, um diesen Code einzufügen.
dataGridView1.Rows
.Add(new object[] { textBox1.Text, textBox2.Text, textBox3.Text });
//Add a list of BBDD
var item = myEntities.getList().ToList();
//Insert a new object of type in a position of the list
item.Insert(0,(new Model.getList_Result { id = 0, name = "Coca Cola" }));
//List assigned to DataGridView
dgList.DataSource = item;
Können Sie bitte erklären, wie es wäre Löse das Problem? – Phani
Wenn you've bereits eine DataSource
definiert haben, können Sie die DataGridView
des bekommen DataSource
und als Datatable
gegossen.
Fügen Sie dann einen neuen DataRow
hinzu und legen Sie die Feldwerte fest.
Fügen Sie die neue Zeile zur DataTable
hinzu und akzeptieren Sie die Änderungen.
In C# wäre es so etwas wie diese ..
DataTable dataTable = (DataTable)dataGridView.DataSource;
DataRow drToAdd = dataTable.NewRow();
drToAdd["Field1"] = "Value1";
drToAdd["Field2"] = "Value2";
dataTable.Rows.Add(drToAdd);
dataTable.AcceptChanges();
//header
dataGridView1.RowCount = 50;
dataGridView1.Rows[0].HeaderCell.Value = "Product_ID0";
//add row by cell
dataGridView1.Rows[1].Cells[0].Value = "cell value";
string[] splited = t.Split('>');
int index = dgv_customers.Rows.Add(new DataGridViewRow());
dgv_customers.Rows[index].Cells["cust_id"].Value=splited.WhichIsType("id;");
aber darüber im Klaren sein, WhichIsType
ist die Erweiterung Methode, die ich erstellt. Diese
Wenn Sie eine Frage mit Code beantworten und dieser Code eine benutzerdefinierte Erweiterungsmethode erfordert, die Sie erstellt haben, und Sie den Code für die benutzerdefinierte Methode nicht eingegeben haben, ist dies keine besonders nützliche Antwort. – Bryan
danke für den Tipp. Ich bin Sory wegen dem.aber diese methode ist nicht eine wichtige methode – rangeeeer
ist, wie ich eine Zeile hinzufügen, wenn die dgrview leer ist: (myDataGridView hat zwei Spalten in meinem Beispiel)
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(myDataGridView);
row.Cells[0].Value = "some value";
row.Cells[1].Value = "next columns value";
myDataGridView.Rows.Add(row);
Nach docs: „CreateCells() löscht die vorhandenen Zellen und setzt ihre Vorlage nach zu der mitgelieferten DataGridView-Vorlage ".
Danke das war sehr nützlich für mich, ich fehlte die "row.CreateCells (myDataGridView);" – Nuno
yourDGV.Rows.Add(column1,column2...columnx); //add a row to a dataGridview
yourDGV.Rows[rowindex].Cells[Cell/Columnindex].value = yourvalue; //edit the value
Sie auch eine neue Zeile erstellen und es dann so zu dem Datagridview hinzufügen:
DataGridViewRow row = new DataGridViewRow();
row.Cells[Cell/Columnindex].Value = yourvalue;
yourDGV.Rows.Add(row);
hier ist ein weiterer Weg, um solche
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[0].Name = "Name";
dataGridView1.Columns[1].Name = "Age";
dataGridView1.Columns[2].Name = "City";
dataGridView1.Rows.Add("kathir", "25", "salem");
dataGridView1.Rows.Add("vino", "24", "attur");
dataGridView1.Rows.Add("maruthi", "26", "dharmapuri");
dataGridView1.Rows.Add("arun", "27", "chennai");
}
Sie die Daten hinzufügen können, tun von eine Datentabelle zu einer Datagridview, indem Sie einfach die Datenquelle der Gridview gleich der Datentabelle 'datagridview1.DataSource = yourDataTable' setzen –