Tasawer Nawaz
Tasawer Nawaz

Reputation: 1

adding rows programmatically to an unbounded datagridview

I'm sending values from one form to another form, then want to display in dgv,

I'm trying this, there is no error during execution, bt it does not show data in dgv..

lineItemsDGV.Rows.Add();

int RowIndex = lineItemsDGV.RowCount - 1;
DataGridViewRow NewRow =lineItemsDGV.Rows[RowIndex];
NewRow.Cells[0].Value = item.Product_id;
NewRow.Cells[1].Value = item.product_name;
NewRow.Cells[2].Value = item.specification;
NewRow.Cells[3].Value = item.unit_price;
NewRow.Cells[4].Value = item.unit_price * 1;

Upvotes: 0

Views: 10721

Answers (3)

Michael
Michael

Reputation: 55

I know this thread is old, but I found this page helpful today and this is how I accomplished adding a new row which is different than the previous solutions.

Assumption: datagridview has columns specified at design time. In my case I had 3 text columns.

The solution is to use the DataGridViewRowCollection.Add functionality and pass a parameter array that contains a list of each column value separated by a comma.

DataGridView1.Rows.Add("Value 1", "Value 2", "Value3")

Using this approach, there's no need to use the BeginEdit, Update or Refesh dgv functions.

Upvotes: 2

Jay Riggs
Jay Riggs

Reputation: 53595

You're close.

What you can do is use the return value of your call to DataGridViewRowCollection.Rows.Add() method, which is the index value of the just added row.

Change your code to this:

int RowIndex = lineItemsDGV.Rows.Add();
DataGridViewRow NewRow = lineItemsDGV.Rows[RowIndex];
NewRow.Cells[0].Value = item.Product_id;
NewRow.Cells[1].Value = item.product_name;
NewRow.Cells[2].Value = item.specification;
NewRow.Cells[3].Value = item.unit_price;
NewRow.Cells[4].Value = item.unit_price * 1;

Upvotes: 5

c0deNinja
c0deNinja

Reputation: 3986

This is how I would do it:

DataRow rowToAdd= myTable.NewRow(); 

rowToAdd["ProductId"] = item.Product_id;
rowToAdd["ProductName"] = item.product_name;
rowToAdd["Specification"] = item.specification;
rowToAdd["UnitPrice"] = item.unit_price;

myTable.Add(rowToAdd);

And bind the datatable to the gridview.

Upvotes: 1

Related Questions