I reformated the string just for ease of reading, try it out.
Also, Make sure that the columns mark as Int are indeed int in the table.
I'm sure that you're doing some Server-side validation to ensure that there are no nulls, etc...
String insertCmd1 = "INSERT INTO tblSupplemental(" +
"id,fn,shsh,born_date," +
"Address,tel,postcode,faf," +
"memoir,degree,un,gd," +
"po,mp,smd,emd) " +
"VALUES(" +
textBox1.Text.Trim() + ", " +
"N'" + textBox2.Text.Trim() + "'," +
Convert.ToInt32(textBox3.Text) + ", " +
"N'" + textBox4.Text.Trim() + "'," +
"N'" + textBox5.Text.Trim() + "'," +
"N'" + textBox6.Text.Trim() + "'," +
"N'" + textBox7.Text.Trim() + "'," +
"N'" + textBox8.Text.Trim() + "'," +
"N'" + textBox9.Text.Trim() + "'," +
"N'" + textBox10.Text.Trim()+ "'," +
"N'" + textBox11.Text.Trim() + "'," +
"'" + textBox12.Text.Trim() + "'," +
"N'" + textBox13.Text.Trim() + "'," +
Convert.ToInt32(textBox14.Text) + "," +
"N'" + textBox15.Text.Trim() + "'," +
"N'" + textBox16.Text.Trim() + "')";