Prueba algo así.
Código vb.net:
Ver originalIf dataGridView1.Rows.Count = 0 Then
Return
End If
Using conn As New SqlConnection("Data Source= ServidorSQL; Initial Catalog=BaseDatos; Integrated Security=SSPI;")
conn.Open()
Dim query As String = "INSERT INTO NombreTabla (id, nombre, apellido) VALUES (@id, @nombre, @apellido)"
Dim cmd As New SqlCommand(query, conn)
For Each row As DataGridViewRow In dataGridView1.Rows
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@id", Convert.ToInt32(row.Cells("Id").Value))
cmd.Parameters.AddWithValue("@nombre", Convert.ToString(row.Cells("Nombre").Value))
cmd.Parameters.AddWithValue("@apellido", Convert.ToString(row.Cells("Apellido").Value))
cmd.ExecuteNonQuery()
Next
End Using
El código iría en el evento del botón guardar, y tendrias que acomodar la query del insert a la bd con tus datos.
Saludos.