Handling optimistic concurrency violations
What optimistic concurrency usually does is update the row specifying the old value in the where clause:

var command = connection.CreateCommand();
command.CommandText = "Update Person SET Age = @age timeStamp = @newTimeStamp WHERE ID = @id AND timeStamp = @originalTimeStamp";
command.Parameters.Add("@age", 1111);
command.Parameters.Add("@newTimeStamp", DateTime.Now);
command.Parameters.Add("@id", 1);
command.Parameters.Add("@originalTimeStamp", originalTimeStamp);
int affected = command.ExecuteNonQuery();

if (affected == 0)
{
    throw new OptimisticConcurrencyException("Data was changed by someone else, please refresh and try again");
}


Also, please use parameters for your SQL queries!