Está mal... porque :
Cita: DataGridView1.Rows(0).Cells(1).Tag
con eso solo guardas los valores de la primera fila ya que estas asignando un 0 en el Rows, para ello podrias usar un for del cual tomar su valor incremental.
Código C:
Ver originalfor (int i = 0; i < dataGridView1.Rows.Count; i++)
{
cmn.Parameters.AddWithValue("@cantidad", DataGridView1.Rows(i).Cells(0).Value)
}
Saludos!

.