Viendo bien tu código y según el orden que me estas mostrando de tu tabla, el error radicaria en que al momento de hacer el insert no estar respetando el orden de insercion, mira :
y tu insercion por codigo :
Código vb:
Ver originalcs = Integer.Parse(txtcsubtipo.Text)
ct = Integer.Parse(txtctipo.Text)
nom = txtnombre.Text
sql = cs & ",'" & nom & "'," & ct
micomando = New MySqlCommand("insert into subtprod values(" & sql & ")", miconexion)
colocas primero el subtp,nombre y luego el ct. En vez de colocar primero ct,subtp,nombre. Como vez tienes que respetar el orden de la inserción. Saludos!

.