We can't tell - we don't have access to your data, or to the DB you are trying to INSERT to - and both are needed in order to work out what is wrong.
So start by doing what Patrice sugestoes and converting your whole app to parameterised queries, then begin looking at the DB table and the order of columns.
I'd guess that you have an automatically generated ID column at the start - an IDENTITY column - and that is causing the problem.
If so, the solution is to
ALWAYS list the columns you wish to insert data into, in the order you will provide data:
INSERT INTO MyTable (Column2, Column3) VALUES (Value2, Value3)
If you don't, SQL will start from the first column and just move on. If the first is an IDENTITY column, you can't specify it;'s value, and the INSERT will be rejected.