# Adding and Inserting Rows In Unbound Mode

When **RadGridView** is in **unbound mode**, you can add new rows to the **Rows** collection.

> caution Adding a **GridViewDataRowInfo** to the **Rows** collection is supported only when RadGridView is in unbound mode. If the grid is data-bound, an **InvalidOperationException** is thrown with the message: "Rows cannot be programmatically added to the RadGridView's rows collection when the control is data-bound." To add rows in bound mode, add the data item to the underlying data source instead.

## Adding rows to RadGridView

For example, if the grid control contains four columns – [GridViewTextBoxColumn](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/columns/column-types/gridviewtextboxcolumn), [GridViewDecimalColumn](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/columns/column-types/gridviewdecimalcolumn), [GridViewDateTimeColumn](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/columns/column-types/gridviewdatetimecolumn) and [GridViewCheckBoxColumn](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/columns/column-types/gridviewcheckboxcolumn) you can add an empty row as it is demonstrated in the code snippet below.

```C#
public RadForm1()
{
    InitializeComponent();
    this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    this.radGridView1.Columns.Add(new GridViewTextBoxColumn(){ HeaderText="TextBox Column" });
    this.radGridView1.Columns.Add(new GridViewDecimalColumn(){ HeaderText="Decimal Column" });
    this.radGridView1.Columns.Add(new GridViewDateTimeColumn(){ HeaderText="DateTime Column" });
    this.radGridView1.Columns.Add(new GridViewCheckBoxColumn(){ HeaderText="CheckBox Column" });
}

```

```VB.NET
Public Sub New()
    InitializeComponent()
    Me.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill
    Me.radGridView1.Columns.Add(New GridViewTextBoxColumn() With {
        .HeaderText = "TextBox Column"
    })
    Me.radGridView1.Columns.Add(New GridViewDecimalColumn() With {
        .HeaderText = "Decimal Column"
    })
    Me.radGridView1.Columns.Add(New GridViewDateTimeColumn() With {
        .HeaderText = "DateTime Column"
    })
    Me.radGridView1.Columns.Add(New GridViewCheckBoxColumn() With {
        .HeaderText = "CheckBox Column"
    })
End Sub

```

The RadGridView\.Rows.**AddNew()** method adds an empty row and allows the user to enter a value for each column cells’:

### Add an empty row

```C#
radGridView1.Rows.AddNew();
```

```VB.NET
RadGridView1.Rows.AddNew()
```

> caption Figure 1: Add a blank new row

![Telerik UI for WinForms RadGridView showing a blank new row added in unbound mode](https://www.telerik.com/products/winforms/documentation/assets/be75d8d691b7193d13512675c1eedc64/gridview-rows-adding-and-inserting-rows001.png)

The RadGridView\.Rows.**Add(value-for-first-column, value-for-second-column, value-for-third-column)** method adds a new row with the specified values. You can use the following code snippet to add values for each column:

### Add a new row with values

```C#
radGridView1.Rows.Add("Adding New Row", 12.5, DateTime.Now, true);
```

```VB.NET
RadGridView1.Rows.Add("Adding New Row", 12.5, DateTime.Now, True)
```

> caption Figure 2: Add new row with data in it

![Telerik UI for WinForms RadGridView showing a new row added with predefined cell values in unbound mode](https://www.telerik.com/products/winforms/documentation/assets/1555568b69722075662a736006074b77/gridview-rows-adding-and-inserting-rows002.png)

You can also add rows by creating an instance of **GridViewDataRowInfo** and adding it to the **Rows** collection of **RadGridView**:

### Add a GridViewDataRowInfo

```C#
GridViewDataRowInfo rowInfo = new GridViewDataRowInfo(this.radGridView1.MasterView);
rowInfo.Cells[0].Value = "GridViewDataRowInfo";
rowInfo.Cells[1].Value = 11.4;
rowInfo.Cells[2].Value = DateTime.Now.AddDays(5);
rowInfo.Cells[3].Value = true;
radGridView1.Rows.Add(rowInfo);
```

```VB.NET
Dim rowInfo As New GridViewDataRowInfo(Me.RadGridView1.MasterView)
rowInfo.Cells(0).Value = "GridViewDataRowInfo"
rowInfo.Cells(1).Value = 11.4
rowInfo.Cells(2).Value = DateTime.Now.AddDays(5)
rowInfo.Cells(3).Value = True
RadGridView1.Rows.Add(rowInfo)
```

> caption Figure 3: Add new row by creating an instance first

![Telerik UI for WinForms RadGridView showing a new row added by creating a GridViewDataRowInfo instance first](https://www.telerik.com/products/winforms/documentation/assets/69c1ee8b0817357c71d6293bca38a6e0/gridview-rows-adding-and-inserting-rows003.png)

## Inserting rows in RadGridView

Rows can be inserted at a specified position by using the **Insert** method of the **Rows** collection. Below you can see an example of this functionality:

### Insert a GridViewDataRowInfo

```C#
GridViewDataRowInfo dataRowInfo = new GridViewDataRowInfo(this.radGridView1.MasterView);
dataRowInfo.Cells[0].Value = "Inserted Row";
dataRowInfo.Cells[1].Value = 1156.54;
dataRowInfo.Cells[2].Value = DateTime.Now.AddDays(14);
radGridView1.Rows.Insert(2, dataRowInfo);
```

```VB.NET
Dim dataRowInfo As New GridViewDataRowInfo(Me.RadGridView1.MasterView)
rowInfo.Cells(0).Value = "Inserted Row"
rowInfo.Cells(1).Value = 1154.54
rowInfo.Cells(2).Value = DateTime.Now.AddDays(14)
RadGridView1.Rows.Insert(2, dataRowInfo)
```

> caption Figure 4: Insert row to a specific position

![Telerik UI for WinForms RadGridView showing a row inserted at a specific position in unbound mode](https://www.telerik.com/products/winforms/documentation/assets/b16ec87eb8a65486072733d684d24e50/gridview-rows-adding-and-inserting-rows004.png)

## See Also

* [Conditional Formatting Rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/conditional-formatting-rows)

* [Creating custom rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/creating-custom-rows)

* [Drag and Drop](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/drag-and-drop)

* [Formatting Rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/formatting-rows)

* [GridViewRowInfo](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/gridviewrowinfo)

* [Iterating Rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/iterating-rows)

* [New Row](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/new-row)

* [Painting Rows](https://www.telerik.com/products/winforms/documentation/controls/gridview/visual-elements/rows/painting-rows)
