Hi
Try this variation (whole test project posted but see changes in last sub)
' Form1 with DataGridView1,
' RadioButtons 1 and 2
' Label1 and Button1
Option Strict On
Option Explicit On
Public Class Form1
Dim dt As New DataTable("Freddy")
Dim BS As New BindingSource
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With dt
.Columns.Add("ID", GetType(Integer))
.PrimaryKey = New DataColumn() { .Columns("ID")}
With .Columns("ID")
.AutoIncrement = True
.AutoIncrementSeed = 1
.AutoIncrementStep = 1
End With
.Columns.Add("Catagory", GetType(Double))
.Columns.Add("Product", GetType(Double))
End With
' few sample data values
dt.Rows.Add(Nothing, 12.34, 21.32)
dt.Rows.Add(Nothing, 1.3, 1.2)
dt.Rows.Add(Nothing, 2.4, 2.3)
BS.DataSource = dt
DataGridView1.DataSource = BS
End Sub
Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
Dim rb As RadioButton = DirectCast(sender, RadioButton)
If rb.Checked Then
Label1.Text = CDbl(dt.Compute("SUM(Product)", String.Empty)).ToString("C2")
Else
Label1.Text = 0.ToString("C2")
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim rowView() As Object = DirectCast(BS.Current, DataRowView).Row.ItemArray
' contrained column
rowView(0) = Nothing
Dim nRow As DataRow = dt.NewRow
nRow.ItemArray = rowView
' .Add row to bottom
dt.Rows.Add(nRow)
End Sub
End Class