error 'ya hay un lector de datos abierto asociado con este comando que debe cerrarse primero'

error de tiempo de ejecución 'ya hay un lector de datos abierto asociado con este comando que debe cerrarse primero'

objCommand = new SqlCommand("SELECT field1, field2 FROM sourcetable", objConn);

objDataReader = objCommand.ExecuteReader();

while (objDataReader.Read())
{
objInsertCommand = new SqlCommand("INSERT INTO tablename (field1, field2) VALUES (3, '" + objDataReader[0] + "')", objConn);
objInsertCommand.ExecuteNonQuery();//Here is the error
}
objDataReader.Close();

No puedo definir ningún procedimiento almacenado aquí. Cualquier ayuda apreciaríamos.