Porque en tu primer IF
Cita: If lineasafectadas.HasRows Then
Estás contemplando toda tu lógica y obviamente si no hay rows obviamente nada de lo que está dentro del IF será validado, podrías quitar ese if y solamente hacerlo así:
Código:
Dim rows As Integer = 0
While lineasafectadas.Read()
rows += 1
End While
MsgBox(rows)
If rows = 0 Then
MessageBox.Show("cero")
Dim Lecto1 = comados.ExecuteNonQuery
Else
MessageBox.Show("hay")
End If