wake-up-neo.com

Wie wird programmgesteuert eine neue Zeile zu datagridview hinzugefügt

wenn Zeile zu DataTable hinzugefügt

DataRow row = datatable1.NewRow();
row["column2"]="column2";
row["column6"]="column6";
datatable1.Rows.Add(row);

Wie wäre es mit DataGridView?

135
LK Yeung

Du kannst tun:

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

Ein anderer Weg: 

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

220
Habib

So was:

var index = dgv.Rows.Add();
dgv.Rows[index].Cells["Column1"].Value = "Column1";
dgv.Rows[index].Cells["Column2"].Value = 5.6;
//....
41
Jizakh

So was:

 dataGridView1.Columns[0].Name = "column2";
 dataGridView1.Columns[1].Name = "column6";

 string[] row1 = new string[] { "column2 value", "column6 value" };
 dataGridView1.Rows.Add(row1);

Oder Sie müssen die Werte individuell einstellen, indem Sie die Eigenschaft .Rows() wie folgt verwenden:

 dataGridView1.Rows[1].Cells[0].Value = "cell value";
30
Mahmoud Gamal

Nehmen wir an, Sie haben eine Datenansicht, die nicht an ein Dataset gebunden ist, und Sie möchten neue Zeilen programmgesteuert füllen.

So machen Sie es.

// 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)
29
Overdrive77

Hinzufügen einer neuen Zeile in einer DGV ohne Zeilen mit Add () raises SelectionChanged --Ereignis, bevor Sie Daten einfügen (oder ein Objekt in die Tag-Eigenschaft binden).

Erstellen Sie eine Klonzeile aus RowTemplate ist imho sicherer:

//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);
19
Defkon1

Wenn das Raster an eine DataSet/Tabelle gebunden ist, ist es besser, eine BindingSource wie zu verwenden

var bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
grid.DataSource = bindingSource;

//Add data to dataTable and then call

bindingSource.ResetBindings(false)    
6
Anders

So füge ich eine Zeile hinzu, wenn der dgrview leer ist: (meinDataGridView hat in meinem Beispiel zwei Spalten)

DataGridViewRow row = new DataGridViewRow();
row.CreateCells(myDataGridView);

row.Cells[0].Value = "some value";
row.Cells[1].Value = "next columns value";

myDataGridView.Rows.Add(row);

Laut docs: "CreateCells () löscht die vorhandenen Zellen und setzt ihre Vorlage entsprechend der bereitgestellten DataGridView-Vorlage".

5
Snorvarg

hier ist ein anderer Weg, dies zu tun

 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"); 
    }
3
Qing Shin hua

Wenn Sie außer der Zellenwertzeichenfolge noch etwas ändern möchten, z. B. ein Tag hinzufügen, versuchen Sie Folgendes:

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);
3
silent tone

Wenn Sie eine Liste binden

List<Student> student = new List<Student>();

dataGridView1.DataSource = student.ToList();
student .Add(new Student());

//Reset the Datasource
dataGridView1.DataSource = null;
dataGridView1.DataSource = student;

Wenn Sie DataTable binden

DataTable table = new DataTable();

 DataRow newRow = table.NewRow();

// Add the row to the rows collection.
table.Rows.Add(newRow);
1
yourDGV.Rows.Add(column1,column2...columnx); //add a row to a dataGridview
yourDGV.Rows[rowindex].Cells[Cell/Columnindex].value = yourvalue; //edit the value

sie können auch eine neue Zeile erstellen und diese dann wie folgt zur DataGridView hinzufügen:

DataGridViewRow row = new DataGridViewRow();
row.Cells[Cell/Columnindex].Value = yourvalue;
yourDGV.Rows.Add(row);
1
F.joksch

Wenn Sie bereits eine DataSource definiert haben, können Sie die DataGridView der DataSource abrufen und als Datatable umwandeln.

Fügen Sie dann ein neues DataRow hinzu und legen Sie die Feldwerte fest.

Fügen Sie die neue Zeile zu DataTable hinzu und akzeptieren Sie die Änderungen.

In C # wäre es so etwas ..

DataTable dataTable = (DataTable)dataGridView.DataSource;
DataRow drToAdd = dataTable.NewRow();

drToAdd["Field1"] = "Value1";
drToAdd["Field2"] = "Value2";

dataTable.Rows.Add(drToAdd);
dataTable.AcceptChanges();
0
luchezco
//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; 
0
Rei Salazar
//header
dataGridView1.RowCount = 50;
dataGridView1.Rows[0].HeaderCell.Value = "Product_ID0";


//add row by cell 
 dataGridView1.Rows[1].Cells[0].Value = "cell value";
0
Khan

Ein Beispiel für das Kopieren einer Zeile aus dataGridView und das Hinzufügen einer neuen Zeile in Dasselbe dataGridView:

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;
0
Sherif Hamdy