Tengo un datagrid view el cual cargo con datos con una consulta select condicionada, además sobre esa misma consulta que me devuelve un Datatable le adicionó filas vacias al Datatable hasta tener un total de 15 incluyendo las filas que ya tienen datos. Ese
resultado lo muestro en un datagrid quedando así

Después escribo datos en las líneas vacias para luego ser guardados la idea es comparar los datos que están en la tabla con los nuevos adicionados al datagrid, para así solo guardar los datos que no existen (para evitar duplicados) para eso uso
el siguiente código el cual no logro realizar lo esperado
Private Sub btn_guardar_Click(sender As Object, e As EventArgs) Handles btn_guardar.Click
Dim dt As New DataTable
dt = func.obtener_subproductos(cod_barras.Text)
Dim existe As Boolean
Dim vacio As Boolean
For Each fila As DataGridViewRow In Listado_Productos.Rows
If Convert.ToString(fila.Cells("CODIGO").Value) Is DBNull.Value.ToString Then
vacio = True
End If
If vacio = False Then
For Each row As DataRow In dt.Rows
If fila.Cells("CODIGO").Value.ToString = row("CODIGO").ToString Then
fila.DefaultCellStyle.ForeColor = Color.Red
existe = True
End If
Next
If existe = False Then
Dim codigo As String = CStr(fila.Cells("CODIGO").Value)
Dim descrip As String = CStr(fila.Cells("DESCRIPCION").Value)
Dim cantidad As String = CStr(fila.Cells("CANTIDAD").Value)
Dim tipoproducto As String = CStr(fila.Cells("TIPO PRODUCTO").Value)
func.insertar_subproductos(codigo, descrip, cod_barras.Text, descripcion.Text, cantidad, tipoproducto)
MsgBox("Registrado")
End If
End If
Next
End Sub
Toda ayuda es bienvenida, y estaría muy agradecido, de antemano gracias y estoy atento a sus respuestas.