Always list the columns you want to insert or alter: if you don't then SQL assumes you mean in it's current column order starting from the "Left" - and the problem you are meeting is one of the results of that (The other is much worse - your DB gets irretrievably corrupted after a "small change" to the DB which appears to work fine until data problems are seen six months later).
Basically, you can't write to an identity column.
So specify your SQL INSRT like this:
INSERT INTO Emp (MyColumnName1, MyColumnName2) VALUES (...)
And that problem will go away.
But...don't do it the way you are! That is spectacularly dangerous. Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.