As it is the second loop round that gives the error it is fairly obvious: Don't use
objSqlCommand.Parameters.Add("@...", SqlDbType.VarChar).Value = ...);
in your loop unless you also create a new objSqlCommand in the loop as well.
Otherwise, you already have a parameter of that name, with a value, which can only get confusing.
BTW: Parameters.Add is depreciated in favour of Parameters.AddWithValue, which does not require the datatype.